tango-app-ui-analyse-trax 3.7.11-redodesign-3-demo7 → 3.7.11-redodesign-3-demo9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/gallery/gallery.component.mjs +2 -69
- package/fesm2022/{tango-app-ui-analyse-trax-eye-test-audit.module-BiQS3U5-.mjs → tango-app-ui-analyse-trax-eye-test-audit.module-dVjMA4nI.mjs} +2 -2
- package/fesm2022/{tango-app-ui-analyse-trax-eye-test-audit.module-BiQS3U5-.mjs.map → tango-app-ui-analyse-trax-eye-test-audit.module-dVjMA4nI.mjs.map} +1 -1
- package/fesm2022/{tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-C1BV8fV8.mjs → tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-DJtpJmPe.mjs} +3 -70
- package/fesm2022/{tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-C1BV8fV8.mjs.map → tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-DJtpJmPe.mjs.map} +1 -1
- package/fesm2022/tango-app-ui-analyse-trax.mjs +1 -1
- package/package.json +1 -1
|
@@ -779,40 +779,6 @@ export class GalleryComponent {
|
|
|
779
779
|
},
|
|
780
780
|
];
|
|
781
781
|
}
|
|
782
|
-
else if (this.select === 'remoteoptometrist') {
|
|
783
|
-
this.storeList = [
|
|
784
|
-
{ "storeId": "11-968",
|
|
785
|
-
"storeName": "LKST1065"
|
|
786
|
-
},
|
|
787
|
-
{ "storeId": "11-1216",
|
|
788
|
-
"storeName": "LKST1245"
|
|
789
|
-
},
|
|
790
|
-
{ "storeId": "11-697",
|
|
791
|
-
"storeName": "LKST481"
|
|
792
|
-
},
|
|
793
|
-
{ "storeId": "11-181",
|
|
794
|
-
"storeName": "LKST293"
|
|
795
|
-
},
|
|
796
|
-
{ "storeId": "11-227",
|
|
797
|
-
"storeName": "LKST348"
|
|
798
|
-
},
|
|
799
|
-
{ "storeId": "11-1360",
|
|
800
|
-
"storeName": "LKST1270"
|
|
801
|
-
},
|
|
802
|
-
{ "storeId": "11-1748",
|
|
803
|
-
"storeName": "LKST1996"
|
|
804
|
-
},
|
|
805
|
-
{ "storeId": "11-2031",
|
|
806
|
-
"storeName": "LKST2024"
|
|
807
|
-
},
|
|
808
|
-
{ "storeId": "11-2115",
|
|
809
|
-
"storeName": "LKST2101"
|
|
810
|
-
},
|
|
811
|
-
{ "storeId": "11-2133",
|
|
812
|
-
"storeName": "LKST2473"
|
|
813
|
-
},
|
|
814
|
-
];
|
|
815
|
-
}
|
|
816
782
|
else if (this.select === 'storehygienemonitoring') {
|
|
817
783
|
this.storeList = [
|
|
818
784
|
{ "storeId": "11-467",
|
|
@@ -1776,6 +1742,7 @@ export class GalleryComponent {
|
|
|
1776
1742
|
this.galleryForm.get('sourceCheckList_id')?.setValue(event?.sourceCheckList_id);
|
|
1777
1743
|
this.galleryForm.get('checklistName')?.setValue(event?.checkListName);
|
|
1778
1744
|
this.galleryForm.get('checkListDescription')?.setValue(event?.checkListDescription);
|
|
1745
|
+
this.select = event?.sourceCheckList_id;
|
|
1779
1746
|
if (event && event.coverage === 'store') {
|
|
1780
1747
|
this.galleryForm.get('userList')?.setValue([]);
|
|
1781
1748
|
this.galleryForm.get('filtertype')?.setValue('Clusters');
|
|
@@ -1993,40 +1960,6 @@ export class GalleryComponent {
|
|
|
1993
1960
|
},
|
|
1994
1961
|
];
|
|
1995
1962
|
}
|
|
1996
|
-
else if (this.select === 'remoteoptometrist') {
|
|
1997
|
-
this.storeList = [
|
|
1998
|
-
{ "storeId": "11-968",
|
|
1999
|
-
"storeName": "LKST1065"
|
|
2000
|
-
},
|
|
2001
|
-
{ "storeId": "11-1216",
|
|
2002
|
-
"storeName": "LKST1245"
|
|
2003
|
-
},
|
|
2004
|
-
{ "storeId": "11-697",
|
|
2005
|
-
"storeName": "LKST481"
|
|
2006
|
-
},
|
|
2007
|
-
{ "storeId": "11-181",
|
|
2008
|
-
"storeName": "LKST293"
|
|
2009
|
-
},
|
|
2010
|
-
{ "storeId": "11-227",
|
|
2011
|
-
"storeName": "LKST348"
|
|
2012
|
-
},
|
|
2013
|
-
{ "storeId": "11-1360",
|
|
2014
|
-
"storeName": "LKST1270"
|
|
2015
|
-
},
|
|
2016
|
-
{ "storeId": "11-1748",
|
|
2017
|
-
"storeName": "LKST1996"
|
|
2018
|
-
},
|
|
2019
|
-
{ "storeId": "11-2031",
|
|
2020
|
-
"storeName": "LKST2024"
|
|
2021
|
-
},
|
|
2022
|
-
{ "storeId": "11-2115",
|
|
2023
|
-
"storeName": "LKST2101"
|
|
2024
|
-
},
|
|
2025
|
-
{ "storeId": "11-2133",
|
|
2026
|
-
"storeName": "LKST2473"
|
|
2027
|
-
},
|
|
2028
|
-
];
|
|
2029
|
-
}
|
|
2030
1963
|
else if (this.select === 'storehygienemonitoring') {
|
|
2031
1964
|
this.storeList = [
|
|
2032
1965
|
{ "storeId": "11-467",
|
|
@@ -3892,4 +3825,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
3892
3825
|
type: ViewChild,
|
|
3893
3826
|
args: ['zoomPopup']
|
|
3894
3827
|
}] } });
|
|
3895
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2dhbGxlcnkvZ2FsbGVyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2dhbGxlcnkvZ2FsbGVyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBYyxZQUFZLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwSSxPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBQ3JDLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBS25DLE9BQU8sRUFBRSxPQUFPLEVBQThDLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUl0RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUVwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUlwRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQzs7Ozs7Ozs7Ozs7OztBQWhCNUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQXdCbEIsTUFBTSxPQUFPLGdCQUFnQjtJQWtHUDtJQUF3QjtJQUFnQztJQUFrQztJQUErQjtJQUNuSTtJQUErQjtJQUF3QjtJQUFvQztJQUE0QjtJQUFtQztJQWxHcEssS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNiLFdBQVcsR0FBRyxDQUFDLENBQUE7SUFDZixpQkFBaUIs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QUFFLENBQUMsQ0FBQywyQkFBMkI7SUFDOUQsQ0FBQzt3R0EzNUhVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLHlOQzVCN0IsOGhrUUFpa0ZjOzs0RkRyaUZELGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxhQUFhOytWQXlvR3ZCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkE0aEJsQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IGRheWpzLCB7IERheWpzIH0gZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yyc7XHJcbmRheWpzLmV4dGVuZCh1dGMpO1xyXG5pbXBvcnQgeyBUaW1lUGVyaW9kIH0gZnJvbSAnbmd4LWRhdGVyYW5nZXBpY2tlci1tYXRlcmlhbC9kYXRlcmFuZ2VwaWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLCBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgVHJheFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmF4LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBFeHBvcnRHYWxsZXJ5Q29tcG9uZW50IH0gZnJvbSAnLi4vZXhwb3J0LWdhbGxlcnkvZXhwb3J0LWdhbGxlcnkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IEFkZFRhc2tDb21wb25lbnQgfSBmcm9tICcuLi9hZGQtdGFzay9hZGQtdGFzay5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYXNrTG9nc0NvbXBvbmVudCB9IGZyb20gJy4uL3Rhc2stbG9ncy90YXNrLWxvZ3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXBwcm92YWxQb3B1cENvbXBvbmVudCB9IGZyb20gJy4uL2FwcHJvdmFsLXBvcHVwL2FwcHJvdmFsLXBvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGludGVydmFsLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQnVsa2NyZWF0aW9ubW9kZWxDb21wb25lbnQgfSBmcm9tICcuLi9hZGQtbXVsdGl0YXNrL2J1bGtjcmVhdGlvbm1vZGVsL2J1bGtjcmVhdGlvbm1vZGVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZ2FsbGVyeScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dhbGxlcnkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9nYWxsZXJ5LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgR2FsbGVyeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuICBkYXlqcyA9IGRheWpzXHJcbiAgbm90aWZ5Q291bnQgPSAwXHJcbiAgc2VsZWN0ZWREYXRlUmFuZ2U6IGFueSA9IHt9O1xyXG4gIGlzQ3VzdG9tRGF0ZSA9IChtOiBkYXlqcy5EYXlqcykgPT4ge1xyXG4gICAgY29uc3QgaXNWYWxpZERhdGUgPSBtID4gdGhpcy5kYXlqcygpO1xyXG4gICAgcmV0dXJuIGlzVmFsaWREYXRlID8gJ2ludmFsaWQtZGF0ZScgOiBmYWxzZTtcclxuICB9XHJcbiAgZ2FsbGVyeUZvcm06IEZvcm1Hcm91cFxyXG4gIHR5cGU6IGFueSA9IFt7IHZhbHVlOiAnY2hlY2tsaXN0JywgbGFiZWw6ICdDaGVja2xpc3QnIH0sXHJcbiAgICAvLyB7IHZhbHVlOiAndGFzaycsIGxhYmVsOiAnVGFzaycgfVxyXG4gIF1cclxuICBmaWx0ZXJ0eXBlOiBhbnkgPSBbeyB2YWx1ZTogJ0NsdXN0ZXJzJywgbGFiZWw6ICdDbHVzdGVycycgfSxcclxuICB7IHZhbHVlOiAnVGVhbXMnLCBsYWJlbDogJ1RlYW1zJyB9XHJcbiAgXVxyXG4gIGNoZWNrbGlzdHM6IGFueSA9IFtdXHJcbiAgYW5zd2VyVHlwZSA9IFtcclxuICAgIHsgbGFiZWw6ICdBbGwgQW5zd2VyIFR5cGUnLCB2YWx1ZTogJ2FsbCcgfSxcclxuICAgIHsgbGFiZWw6ICdEZXNjcmlwdGl2ZSBBbnN3ZXInLCB2YWx1ZTogJ2Rlc2NyaXB0aXZlJyB9LFxyXG4gICAgeyBsYWJlbDogJ0EvQiBRdWVzdGlvbicsIHZhbHVlOiAneWVzL25vJyB9LFxyXG4gICAgeyBsYWJlbDogJ011bHRpcGxlIENob2ljZSBRdWVzdGlvbiAtIFNpbmdsZSBBbnN3ZXInLCB2YWx1ZTogJ211bHRpcGxlY2hvaWNlc2luZ2xlJyB9LFxyXG4gICAgeyBsYWJlbDogJ011bHRpcGxlIENob2ljZSBRdWVzdGlvbiAtIE11bHRpcGxlIEFuc3dlcicsIHZhbHVlOiAnbXVsdGlwbGVjaG9pY2VtdWx0aXBsZScgfSxcclxuICAgIHsgbGFiZWw6ICdDYXB0dXJlIEltYWdlIGFzIGFuc3dlcicsIHZhbHVlOiAnaW1hZ2UnIH0sXHJcbiAgICB7IGxhYmVsOiAnQ2FwdHVyZSBJbWFnZSB3aXRoIERlc2NyaXB0aW9uJywgdmFsdWU6ICdkZXNjcmlwdGl2ZUltYWdlJyB9LFxyXG4gICAgeyBsYWJlbDogJ0NhcHR1cmUgdmlkZW8gYXMgYW5zd2VyJywgdmFsdWU6ICd2aWRlbycgfSxcclxuICAgIHsgbGFiZWw6ICdDYXB0dXJlIE11bHRpcGxlIEltYWdlJywgdmFsdWU6ICdtdWx0aXBsZUltYWdlJyB9LFxyXG4gICAgeyBsYWJlbDogJ0RhdGUgQXMgQW5zd2VyJywgdmFsdWU6ICdkYXRlJyB9LFxyXG4gICAgeyBsYWJlbDogJ1RpbWUgQXMgQW5zd2VyJywgdmFsdWU6ICd0aW1lJyB9LFxyXG4gICAgeyBsYWJlbDogJ0xpbmVhciBTY2FsZScsIHZhbHVlOiAnbGluZWFyc2NhbGUnIH1cclxuICBdXHJcbiAgaGVhZGVyRmlsdGVyczogYW55ID0ge307XHJcbiAgc3RvcmVMaXN0OiBhbnlbXSA9IFtdXHJcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgY2hlY2tsaXN0RGF0YTogYW55ID0ge31cclxuICBzdG9yZXM6IGFueSA9IFtdO1xyXG4gIGdyb3VwczogYW55ID0gW107XHJcbiAgdGVhbXM6IGFueSA9IFtdO1xyXG4gIGl0ZW1zOiBhbnk7XHJcbiAgcGFnaW5hdGVkSXRlbXM6IGFueTtcclxuICBpdGVtc1BlclBhZ2UgPSAxMDtcclxuICBjdXJyZW50UGFnZSA9IDE7XHJcbiAgdG90YWxJdGVtcyA9IDA7XHJcbiAgdmlld0NoZWNrbGlzdHNEYXRhOiBhbnk7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgbm9EYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdmlld2xvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHZpZXdub0RhdGE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBvZmZzZXQ6IGFueSA9IDE7XHJcbiAgbGltaXQ6IGFueSA9IDE7XHJcbiAgcGFnaW5hdGlvblNpemVzID0gWzFdXHJcbiAgdG90YWxDb3VudDogYW55O1xyXG4gIHZpZXdDaGVja2xpc3Rzb3B0aW9uczogYW55ID0ge307XHJcbiAgbW9iaWxldXNhZ2VEYXRhOiBhbnk7XHJcbiAgbW9iaWxldXNhZ2VEYXRhTGlzdDogYW55ID0gW11cclxuICBzZWxlY3RBbGw6IGFueVxyXG4gIHN0b3JlT3BlbmNsb3NlVmlldzogYW55O1xyXG4gIHF1ZXJ5UGFyYW1zOiBhbnk7XHJcbiAgY3VzdG9tZXJ1bmF0dGVuZGVkRGF0YTogYW55O1xyXG4gIHNlY3Rpb25OYW1lOiBhbnkgPSAnYWxsJztcclxuICBxdWVzdGlvbk5hbWU6IGFueSA9ICdhbGwnO1xyXG4gIGNsaWVudERhdGE6IGFueTtcclxuICBjaGVja2xpc3ROYW1lOiBhbnkgPSAnJztcclxuICBDbHVzdGVyTGlzdDogYW55ID0gW107XHJcbiAgVGVhbXNMaXN0OiBhbnkgPSBbXTtcclxuICB1c2VyTGlzdDogYW55ID0gW107XHJcbiAgZW52aXJvbm1lbnQ6IGFueTtcclxuICBzaG93ZmxhZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgc2VsZWN0ZWRTZWN0aW9uOiBhbnkgPSBbXVxyXG4gIHRlbXBzZWxlY3RlZFNlY3Rpb246IGFueSA9IFtdXHJcbiAgc2hvd211bHRpOiBib29sZWFuID0gdHJ1ZTtcclxuICBzaG93c2luZ2xlOiBib29sZWFuID0gZmFsc2VcclxuICBzaG93ZmlsdGVyOiBib29sZWFuID0gZmFsc2VcclxuICBwcmV2aWV3VHlwZTogYW55ID0gJ2ltYWdlJztcclxuICBjaGVja0xpc3REZXNjcmlwdGlvbjogYW55ID0gJydcclxuICBhbnN3ZXJGaWx0ZXI6IGFueSA9IFtdXHJcbiAgYXBwcm92YWxTdGF0dXM6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIGFsbGFwcHJvdmFsU3RhdHVzOiBib29sZWFuID0gZmFsc2VcclxuICBjYXRlZ29yeTogc3RyaW5nID0gJ2FsbCdcclxuICB2aWRlb0NoZWNrbGlzdCA9IFsnY3VzdG9tZXJ1bmF0dGVuZGVkJywgJ3N0YWZmbGVmdGludGhlbWlkZGxlJywgJ3JlbW90ZW9wdG9tZXRyaXN0JywgJ2V5ZXRlc3QnLCAnZmFjdG9yeScsICdjbGVhbmluZycsICdzY3J1bScsICdzdXNwaWNpb3VzYWN0aXZpdHknXVxyXG4gIGltYWdlQ2hlY2tsaXN0ID0gWydtb2JpbGV1c2FnZWRldGVjdGlvbicsICd1bmlmb3JtZGV0ZWN0aW9uJywgJ3N0b3JlaHlnaWVuZW1vbml0b3JpbmcnLCAnY3VzdG9tZXJ0cmlhbCcsICdpbnZlbnRvcnljb3VudCcsICdjYXJzYXR0ZW5kZWQnLCAnbnVtYmVycGxhdGVpbmZvJywgJ3ZlaGljbGVfY2hlY2tfaW4nLCAnb3V0c2lkZWJ1c2luZXNzaG91cnNxdWV1ZXRyYWNraW5nJ11cclxuICBib3hpbWFnZUNoZWNrbGlzdCA9IFsncXVldWVhbGVydCcsICdib3hhbGVydCcsICdzdXNwaWNpb3VzZm9vdGZhbGwnLCAnZHJpbmtpbmcnLCAnYmFnZGV0ZWN0aW9uJ11cclxuICBjb21iaW5lZENoZWNrbGlzdCA9IFsuLi50aGlzLnZpZGVvQ2hlY2tsaXN0LCAuLi50aGlzLmltYWdlQ2hlY2tsaXN0LCAuLi50aGlzLmJveGltYWdlQ2hlY2tsaXN0LCAnc3RvcmVvcGVuYW5kY2xvc2UnLF1cclxuICBwZGZFeHBvcnRUeXBlczogYW55ID0gWydjdXN0b20nLCAndGFzaycsICdzdG9yZW9wZW5hbmRjbG9zZScsICdjbGVhbmluZycsICdzY3J1bScsICdvdXRzaWRlYnVzaW5lc3Nob3Vyc3F1ZXVldHJhY2tpbmcnXVxyXG4gIGNzdkV4cG9ydFR5cGVzOiBhbnkgPSBbJ2N1c3RvbScsICd0YXNrJywgJ3N0b3Jlb3BlbmFuZGNsb3NlJywgJ2NsZWFuaW5nJywgJ3NjcnVtJywgJ2ludmVudG9yeWNvdW50JywgJ2NhcnNhdHRlbmRlZCcsICdudW1iZXJwbGF0ZWluZm8nLCAnb3V0c2lkZWJ1c2luZXNzaG91cnNxdWV1ZXRyYWNraW5nJ11cclxuICBxdWV1ZUFsZXJ0VmlldzogYW55O1xyXG4gIHZpZXdJbWFnZTogYW55O1xyXG4gIHpvbmVMaXN0OiBhbnkgPSBbXTtcclxuICBhcHByb3ZlRmlsdGVyOiBhbnkgPSAnYWxsJ1xyXG4gIHVzZXJEZXRhaWxzOiBhbnlcclxuICB0aW1lb3V0SWQ6IGFueTtcclxuICBzZWxlY3RlZFN0b3JlczogYW55ID0gW107XHJcbiAgc2VsZWN0ZWRVc2VyczogYW55ID0gW107XHJcbiAgaW5wdXREYXRhVGFzazogYW55O1xyXG4gIG90aGVyVGFza0RhdGE6IGFueVxyXG4gIHNlbGVjdEFsbFRhc2s6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIHRvdGFscmVjb3JkY291bnQ6IG51bWJlciA9IDBcclxuICBzZWxlY3RlZFJlY29yZENvdW50OiBudW1iZXIgPSAwXHJcbiAgcmVmSW1hZ2U6IGFueVtdID0gW107XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsIHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLCBwcml2YXRlIHRyYXhTZXJ2aWNlOiBUcmF4U2VydmljZSwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlLCBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbiwgcHJpdmF0ZSBwYWdlSW5mbzogUGFnZUluZm9TZXJ2aWNlLCBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyXHJcbiAgKSB7XHJcbiAgICBcclxuICAgIHRoaXMucm91dGU/LnF1ZXJ5UGFyYW1zXHJcbiAgICAgID8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xyXG4gICAgICAgIHRoaXMucXVlcnlQYXJhbXMgPSBwYXJhbXM7XHJcbiAgICAgICAgICBpZih0aGlzLnF1ZXJ5UGFyYW1zLmNoZWNrbGlzdFR5cGUgPT09ICdBSScpe1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdCA9dGhpcy5xdWVyeVBhcmFtcz8uc291cmNlQ2hlY2tMaXN0X2lkXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMucXVlcnlQYXJhbXMgJiYgdGhpcy5xdWVyeVBhcmFtcy5DaGVja2xpc3REYXRlKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlID0ge1xyXG4gICAgICAgICAgICBzdGFydERhdGU6IHRoaXMucXVlcnlQYXJhbXMuQ2hlY2tsaXN0RGF0ZSA/IHRoaXMuZGF5anModGhpcy5xdWVyeVBhcmFtcy5DaGVja2xpc3REYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKSA6IHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgxLCAnZGF5JykuZm9ybWF0KCdERC1NTS1ZWVlZJyksXHJcbiAgICAgICAgICAgIGVuZERhdGU6IHRoaXMucXVlcnlQYXJhbXMuQ2hlY2tsaXN0RGF0ZSA/IHRoaXMuZGF5anModGhpcy5xdWVyeVBhcmFtcy5DaGVja2xpc3REYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKSA6IHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgxLCAnZGF5JykuZm9ybWF0KCdERC1NTS1ZWVlZJylcclxuICAgICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWUucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoZGF0YT8uY2xpZW50KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhlYWRlckZpbHRlcnMgPSBkYXRhO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRBbGxTdG9yZXMoKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbGV0IHVzZXJpbmZvID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInVzZXItaW5mb1wiKSB8fCBcIlwiKVxyXG4gICAgICAgICAgICAgICAgaWYgKHVzZXJpbmZvICYmIHVzZXJpbmZvPy5jbGllbnRJZCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50ID0gdXNlcmluZm8/LmNsaWVudElkXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QWxsU3RvcmVzKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBpZiAodGhpcy5xdWVyeVBhcmFtcy52aWV3UmVkbykge1xyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldChcInZpZXdSZWRvXCIpPy5zZXRWYWx1ZSh0cnVlKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlID0ge1xyXG4gICAgICAgICAgLy8gICBzdGFydERhdGU6IHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgyLCAnZGF5JykuZm9ybWF0KCdERC1NTS1ZWVlZJyksXHJcbiAgICAgICAgICAvLyAgIGVuZERhdGU6IHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgyLCAnZGF5JykuZm9ybWF0KCdERC1NTS1ZWVlZJylcclxuICAgICAgICAgIC8vIH1cclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UgPSB7XHJcbiAgICAgICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcyhcIjIwMjUtMDgtMjVcIikuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgICAgICAgZW5kRGF0ZTogdGhpcy5kYXlqcyhcIjIwMjUtMDktMTBcIikuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgICAgIH07XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIHRoaXMuZ3MuZW52aXJvbm1lbnQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZW52KSA9PiB7XHJcbiAgICAgIGlmIChlbnYpIHtcclxuICAgICAgICB0aGlzLmVudmlyb25tZW50ID0gZW52XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50ID09PSBcIjQ2NFwiKSB7XHJcbiAgICAgIHRoaXMucmVxdWVzdFBlcm1pc3Npb24oKVxyXG4gICAgICB0aGlzLmNoZWNrTm90aWZpY2F0aW9ucygpXHJcbiAgICB9XHJcbiAgfVxyXG4gIGNoZWNrdG9kYXlEYXRlKGNoZWNrbGlzdERhdGU6IGFueSkge1xyXG4gICAgY29uc3QgZ2l2ZW5EYXRlID0gY2hlY2tsaXN0RGF0ZTtcclxuICAgIGNvbnN0IGlzU2FtZURhdGUgPSBkYXlqcygpLmlzU2FtZShkYXlqcyhnaXZlbkRhdGUpLCAnZGF5Jyk7XHJcblxyXG4gICAgcmV0dXJuIGlzU2FtZURhdGVcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50aW1lb3V0SWQpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dElkKTtcclxuICAgICAgdGhpcy50aW1lb3V0SWQgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVxdWVzdFBlcm1pc3Npb24oKSB7XHJcbiAgICBpZiAoJ05vdGlmaWNhdGlvbicgaW4gd2luZG93KSB7XHJcbiAgICAgIE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4ocGVybWlzc2lvbiA9PiB7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2cocGVybWlzc2lvbilcclxuICAgICAgICAvLyBpZiAocGVybWlzc2lvbiA9PT0gJ2dyYW50ZWQnKSB7XHJcbiAgICAgICAgLy8gICBzZXRUaW1lb3V0KCgpID0+IHRoaXMubm90aWZ5KCksIDEwMDApOyAvLyBzaG9ydCBkZWxheSBoZWxwcyBpbiBzb21lIGJyb3dzZXJzXHJcbiAgICAgICAgLy8gfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Jyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBub3RpZmljYXRpb25zLicpO1xyXG4gICAgfVxyXG4gIH1cclxuICBub3RpZnkoZGF0YTogYW55KSB7XHJcbiAgICBmb3IgKGxldCBlbGVtZW50IG9mIGRhdGEpIHtcclxuICAgICAgaWYgKE5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uID09PSAnZ3JhbnRlZCcpIHtcclxuICAgICAgICB0aGlzLnBhZ2VJbmZvLnVwZGF0ZVRpdGxlKCfimqDvuI8gVmVoaWNsZSBEZXRlY3Rpb24nKTtcclxuXHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uID0gbmV3IE5vdGlmaWNhdGlvbihg8J+alyBWZWhpY2xlIERldGVjdGlvbiBvbiBzbG90ICR7ZWxlbWVudD8uc2xvdE5vfWAsIHtcclxuICAgICAgICAgIGJvZHk6IGAgRGV0ZWN0aW9uIG9jY3VycmVkIGF0ICR7ZWxlbWVudC5jYXB0dXJlVGltZX1gLFxyXG4gICAgICAgICAgaWNvbjogJy4vYXNzZXRzL3RhbmdvL2xheW91dC90YW5nby1mYXYucG5nJyAvLyBPcHRpb25hbFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKG5vdGlmaWNhdGlvbilcclxuICAgICAgICBub3RpZmljYXRpb24ub25zaG93ID0gKCkgPT4gY29uc29sZS5sb2coJ05vdGlmaWNhdGlvbiBzaG93bicpO1xyXG4gICAgICAgIG5vdGlmaWNhdGlvbi5vbmNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ05vdGlmaWNhdGlvbiBjbGlja2VkJyk7XHJcblxyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnLycsIHsgc2tpcExvY2F0aW9uQ2hhbmdlOiB0cnVlIH0pLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9tYW5hZ2UvdHJheC9nYWxsZXJ5J10sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHtcclxuICAgICAgICAgICAgICAgICAgQ2hlY2tsaXN0RGF0ZTogZGF5anMoKS5mb3JtYXQoJ1lZWVktTU0tREQnKSxcclxuICAgICAgICAgICAgICAgICAgY2hlY2tsaXN0VHlwZTogXCJhaVwiLFxyXG4gICAgICAgICAgICAgICAgICBzb3VyY2VDaGVja0xpc3RfaWQ6IFwidmVoaWNsZV9jaGVja19pblwiLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXHJcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIG5vdGlmaWNhdGlvbi5jbG9zZSgpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgbm90aWZpY2F0aW9uLm9uZXJyb3IgPSAoZSkgPT4gY29uc29sZS5lcnJvcignTm90aWZpY2F0aW9uIGVycm9yJywgZSk7XHJcbiAgICAgICAgbm90aWZpY2F0aW9uLm9uY2xvc2UgPSAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBhZ2VJbmZvLnVwZGF0ZVRpdGxlKCdHYWxsZXJ5Jyk7XHJcblxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmVmcmVzaG5vdygpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy8nLCB7IHNraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZSB9KS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RyYXgvZ2FsbGVyeSddLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XHJcbiAgICAgICAgICAgIENoZWNrbGlzdERhdGU6IGRheWpzKCkuZm9ybWF0KCdZWVlZLU1NLUREJyksXHJcbiAgICAgICAgICAgIGNoZWNrbGlzdFR5cGU6IFwiYWlcIixcclxuICAgICAgICAgICAgc291cmNlQ2hlY2tMaXN0X2lkOiBcInZlaGljbGVfY2hlY2tfaW5cIixcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxyXG4gICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xyXG4gICAgdGhpcy5zZXRQYWdlRGF0YSgpO1xyXG4gICAgdGhpcy51c2VyRGV0YWlscyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c2VyLWluZm9cIikgfHwgXCJcIilcclxuICAgIC8vIGlmICh0aGlzLnF1ZXJ5UGFyYW1zLmNvdmVyYWdlID09PSAndXNlcicpIHtcclxuICAgIC8vICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoXCJmaWx0ZXJ0eXBlXCIpPy5zZXRWYWx1ZSgnVGVhbXMnKVxyXG4gICAgLy8gfVxyXG4gICAgLy8gaWYgKHRoaXMucXVlcnlQYXJhbXMuY292ZXJhZ2UgPT09ICdzdG9yZXMnKSB7XHJcbiAgICB0aGlzLmdhbGxlcnlGb3JtLmdldChcImZpbHRlcnR5cGVcIik/LnNldFZhbHVlKCdDbHVzdGVycycpXHJcbiAgICB0aGlzLmdhbGxlcnlGb3JtLmdldChcInR5cGVcIik/LnNldFZhbHVlKCdjaGVja2xpc3QnKVxyXG4gICAgLy8gfVxyXG4gICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhPy5jbGllbnQpIHtcclxuICAgICAgICAgIHRoaXMuaGVhZGVyRmlsdGVycyA9IGRhdGE7XHJcbiAgICAgICAgICBpZiAoIXRoaXMucXVlcnlQYXJhbXMuQ2hlY2tsaXN0RGF0ZSAmJiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50ICYmICh0aGlzLmhlYWRlckZpbHRlcnM/LmNsaWVudCA9PT0gXCI0NTlcIiB8fCB0aGlzLmhlYWRlckZpbHRlcnM/LmNsaWVudCA9PT0gXCI0NjRcIikpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSA9IHtcclxuICAgICAgICAgICAgICBzdGFydERhdGU6IHRoaXMuZGF5anMoKS5mb3JtYXQoJ0RELU1NLVlZWVknKSxcclxuICAgICAgICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKCkuZm9ybWF0KCdERC1NTS1ZWVlZJylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnZnJvbURhdGUnKT8uc2V0VmFsdWUoZGF5anModGhpcy5zZWxlY3RlZERhdGVSYW5nZS5zdGFydERhdGUsICdERC1NTS1ZWVlZJykuZm9ybWF0KCdZWVlZLU1NLUREJykpXHJcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd0b0RhdGUnKT8uc2V0VmFsdWUoZGF5anModGhpcy5zZWxlY3RlZERhdGVSYW5nZS5lbmREYXRlLCAnREQtTU0tWVlZWScpLmZvcm1hdCgnWVlZWS1NTS1ERCcpKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5jbGllbnREZXRhaWxzKCk7XHJcbiAgICAgICAgICAvLyB0aGlzLmdldEFsbEdyb3VwcygpO1xyXG4gICAgICAgICAgdGhpcy5nZXRBbGxTdG9yZXMoKTtcclxuICAgICAgICAgIC8vIHRoaXMuZ2V0QWxsVXNlcnMoKTtcclxuICAgICAgICAgIC8vIHRoaXMuZ2V0QWxsVGVhbXMoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IHVzZXJpbmZvID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInVzZXItaW5mb1wiKSB8fCBcIlwiKVxyXG4gICAgICAgICAgaWYgKHVzZXJpbmZvICYmIHVzZXJpbmZvPy5jbGllbnRJZCkge1xyXG4gICAgICAgICAgICB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50ID0gdXNlcmluZm8/LmNsaWVudElkXHJcblxyXG4gICAgICAgICAgICBpZiAoIXRoaXMucXVlcnlQYXJhbXMuQ2hlY2tsaXN0RGF0ZSAmJiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50ICYmICh0aGlzLmhlYWRlckZpbHRlcnM/LmNsaWVudCA9PT0gXCI0NTlcIiB8fCB0aGlzLmhlYWRlckZpbHRlcnM/LmNsaWVudCA9PT0gXCI0NjRcIikpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlID0ge1xyXG4gICAgICAgICAgICAgICAgc3RhcnREYXRlOiB0aGlzLmRheWpzKCkuZm9ybWF0KCdERC1NTS1ZWVlZJyksXHJcbiAgICAgICAgICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKCkuZm9ybWF0KCdERC1NTS1ZWVlZJylcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2Zyb21EYXRlJyk/LnNldFZhbHVlKGRheWpzKHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2Uuc3RhcnREYXRlLCAnREQtTU0tWVlZWScpLmZvcm1hdCgnWVlZWS1NTS1ERCcpKVxyXG4gICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd0b0RhdGUnKT8uc2V0VmFsdWUoZGF5anModGhpcy5zZWxlY3RlZERhdGVSYW5nZS5lbmREYXRlLCAnREQtTU0tWVlZWScpLmZvcm1hdCgnWVlZWS1NTS1ERCcpKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY2xpZW50RGV0YWlscygpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLmdldEFsbEdyb3VwcygpO1xyXG4gICAgICAgICAgICB0aGlzLmdldEFsbFN0b3JlcygpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLmdldEFsbFVzZXJzKCk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuZ2V0QWxsVGVhbXMoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgY2hlY2tOb3RpZmljYXRpb25zKCkge1xyXG4gICAgdGhpcy50cmF4U2VydmljZS5jaGVja05vdGlmaWNhdGlvbkNvdW50KHRoaXMuaGVhZGVyRmlsdGVycy5jbGllbnQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRJZClcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCAmJiByZXMuZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLm5vdGlmeUNvdW50ID0gdGhpcy5ub3RpZnlDb3VudCArIHJlcy5kYXRhLmxlbmd0aDtcclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgdGhpcy5ub3RpZnkocmVzLmRhdGEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gU2NoZWR1bGUgdGhlIG5leHQgY2FsbFxyXG4gICAgICAgIHRoaXMudGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLmNoZWNrTm90aWZpY2F0aW9ucygpLCAxMDAwMCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6JywgZXJyKTtcclxuICAgICAgICB0aGlzLnJlcXVlc3RQZXJtaXNzaW9uKCk7XHJcblxyXG4gICAgICAgIC8vIFJldHJ5IGV2ZW4gb24gZXJyb3JcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2hlY2tOb3RpZmljYXRpb25zKCksIDEwMDAwKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNldFBhZ2VEYXRhKCkge1xyXG4gICAgdGhpcy5wYWdlSW5mby51cGRhdGVUaXRsZSgnR2FsbGVyeScpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXREZXNjcmlwdGlvbihcIlwiKTtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0QnJlYWRjcnVtYnMoW1xyXG4gICAgICB7IHRpdGxlOiBcIlRhbmdvIFRyYXhcIiwgcGF0aDogXCIvbWFuYWdlL3RyYXgvbWFuYWdlY2hlY2tsaXN0XCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IGZhbHNlIH0sXHJcbiAgICAgIHsgdGl0bGU6IFwiVGFuZ28gVHJheFwiLCBwYXRoOiBcIi9tYW5hZ2UvdHJheC9tYW5hZ2VjaGVja2xpc3RcIiwgaXNBY3RpdmU6IGZhbHNlLCBpc1NlcGFyYXRvcjogdHJ1ZSB9LFxyXG4gICAgXSk7XHJcblxyXG4gIH1cclxuICBnZXRBbGxHcm91cHMoKSB7XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldGNsdXN0ZXJzKHsgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRmlsdGVycy5jbGllbnQsIGdyb3VwOiBbXSwgY2l0eTogW10gfSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuQ2x1c3Rlckxpc3QgPSByZXMuZGF0YS5ncm91cERhdGFcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5DbHVzdGVyTGlzdCA9IFtdXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBnZXRBbGxUZWFtcygpIHtcclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0QWxsVGVhbXModGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuVGVhbXNMaXN0ID0gcmVzLmRhdGFcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5UZWFtc0xpc3QgPSBbXVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgY2xpZW50RGV0YWlscygpIHtcclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0Y2xpZW50KHsgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRmlsdGVycy5jbGllbnQgfSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuY2xpZW50RGF0YSA9IHJlcy5kYXRhLnJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHJlZG9DaGFuZ2VkKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldChcInZpZXdSZWRvXCIpPy5zZXRWYWx1ZSh0cnVlKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50cmF4U2VydmljZS5nZXRTdG9yZXNsaXN0KHsgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRmlsdGVycy5jbGllbnQsIGNsdXN0ZXJzOiB0aGlzLmdyb3VwcywgY2l0eTogW10gfSkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gcmVzLmRhdGEuc3RvcmVzRGF0YTtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZXMgPSByZXMuZGF0YS5zdG9yZXNEYXRhXHJcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZUxpc3QnKT8uc2V0VmFsdWUodGhpcy5zdG9yZUxpc3QpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldChcInZpZXdSZWRvXCIpPy5zZXRWYWx1ZShmYWxzZSlcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBmbGFnQ2hhbmdlZChldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoXCJ2aWV3RmxhZ1wiKT8uc2V0VmFsdWUodHJ1ZSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KFwidmlld0ZsYWdcIik/LnNldFZhbHVlKGZhbHNlKVxyXG4gICAgfVxyXG4gIH1cclxuICBvbmNoZWNrbGlzdHJlc2V0KCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFN0b3JlcyA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gW107XHJcbiAgICB0aGlzLnRvdGFscmVjb3JkY291bnQgPSAwO1xyXG4gICAgdGhpcy5zZWxlY3RlZFJlY29yZENvdW50ID0gMFxyXG4gICAgdGhpcy5zZWxlY3RBbGxUYXNrID0gZmFsc2VcclxuXHJcbiAgICB0aGlzLmdhbGxlcnlGb3JtLmdldChcImZpbHRlclwiKT8uc2V0VmFsdWUoJycpXHJcbiAgICB0aGlzLmFuc3dlckZpbHRlciA9IFtdXHJcbiAgICB0aGlzLnNob3dtdWx0aSA9IHRydWVcclxuICAgIHRoaXMuc2hvd3NpbmdsZSA9IGZhbHNlXHJcbiAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0Jykge1xyXG4gICAgICB0aGlzLmdldENoZWNrbGlzdFFBKGZhbHNlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ2V0VGFza1FBKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSlcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICByZXNldFZhbGlkYXRpb24oKSB7XHJcbiAgICB0aGlzLmlzQ3VzdG9tRGF0ZSA9IChtOiBkYXlqcy5EYXlqcykgPT4ge1xyXG4gICAgICAvLyBDaGVjayBpZiB0aGUgZ2l2ZW4gZGF0ZSBpcyBiZWZvcmUgeWVzdGVyZGF5XHJcbiAgICAgIHJldHVybiBtLmlzQWZ0ZXIodGhpcy5kYXlqcygpLCAnZGF5JykgPyAnaW52YWxpZC1kYXRlJyA6IGZhbHNlO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG9uU3RhcnREYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkuaXNWYWxpZCgpKSB7XHJcbiAgICAgIGxldCBjbGllbnRpbmZvID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNsaWVudC1kZXRhaWxzXCIpIHx8IFwiXCIpXHJcbiAgICAgIGxldCB1c2VyaW5mbyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c2VyLWluZm9cIikgfHwgXCJcIilcclxuICAgICAgaWYgKGNsaWVudGluZm8gfHwgdXNlcmluZm8pIHtcclxuICAgICAgICBpZiAoY2xpZW50aW5mbz8udHJheERhdGVSYW5nZSA9PT0gNyB8fCB1c2VyaW5mbz8udHJheERhdGVSYW5nZSA9PT0gNykge1xyXG4gICAgICAgICAgdGhpcy5pc0N1c3RvbURhdGUgPSAobTogZGF5anMuRGF5anMpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgaXNWYWxpZERhdGUgPVxyXG4gICAgICAgICAgICAgIG0gPiB0aGlzLmRheWpzKCkgfHwgbSA+IHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlLmFkZCgyLCBcImRheXNcIikpO1xyXG4gICAgICAgICAgICByZXR1cm4gaXNWYWxpZERhdGUgPyBcImludmFsaWQtZGF0ZVwiIDogZmFsc2U7XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmlzQ3VzdG9tRGF0ZSA9IChtOiBkYXlqcy5EYXlqcykgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpc1ZhbGlkRGF0ZSA9XHJcbiAgICAgICAgICAgICAgbSA+IHRoaXMuZGF5anMoKSB8fCBtID4gdGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUuYWRkKDMwLCBcImRheXNcIikpO1xyXG4gICAgICAgICAgICByZXR1cm4gaXNWYWxpZERhdGUgPyBcImludmFsaWQtZGF0ZVwiIDogZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgLy8gdGhpcy5nZXRBbGxDaGVja0xpc3RzKGZhbHNlKVxyXG4gIH1cclxuICBzZWxlY3RBbGxTdG9yZShldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RBbGwgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgICAgdGhpcy5tb2JpbGV1c2FnZURhdGFMaXN0LmZvckVhY2goKG9iajogYW55KSA9PiAob2JqLmNoZWNrZWQgPSB0aGlzLnNlbGVjdEFsbCkpO1xyXG4gICAgICBsZXQgc3RvcmUgPSB0aGlzLm1vYmlsZXVzYWdlRGF0YUxpc3QuZmlsdGVyKChlbDogYW55KSA9PiBlbC5jaGVja2VkKVxyXG4gICAgICBjb25zdCBjaGFuZ2UgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHN0b3JlKSlcclxuICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZShjaGFuZ2UpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnem9uZUxpc3QnKT8uc2V0VmFsdWUoW10pXHJcbiAgICAgIHRoaXMuc2VsZWN0QWxsID0gZmFsc2VcclxuICAgICAgdGhpcy5tb2JpbGV1c2FnZURhdGFMaXN0LmZvckVhY2goKG9iajogYW55KSA9PiAob2JqLmNoZWNrZWQgPSB0aGlzLnNlbGVjdEFsbCkpO1xyXG4gICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc3RvcmVMaXN0Jyk/LnNldFZhbHVlKFtdKVxyXG4gICAgfVxyXG4gIH1cclxuICB1cGRhdGVDaGVjayhldmVudDogYW55LCBzdG9yZWRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5tb2JpbGV1c2FnZURhdGFMaXN0LmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChlbGUuc3RvcmVJZCA9PT0gc3RvcmVkYXRhLnN0b3JlSWQpIHtcclxuICAgICAgICBlbGUuY2hlY2tlZCA9IGV2ZW50LnRhcmdldC5jaGVja2VkO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGxldCBzdG9yZSA9IHRoaXMubW9iaWxldXNhZ2VEYXRhTGlzdC5maWx0ZXIoKGRhdGE6IGFueSkgPT4gZGF0YS5jaGVja2VkKTtcclxuICAgIGNvbnN0IGNoYW5nZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc3RvcmUpKVxyXG5cclxuICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZUxpc3QnKT8uc2V0VmFsdWUoY2hhbmdlKVxyXG4gICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3pvbmVMaXN0Jyk/LnNldFZhbHVlKFtdKVxyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuICAgIHRoaXMuc2VsZWN0QWxsID0gdGhpcy5tb2JpbGV1c2FnZURhdGFMaXN0LmV2ZXJ5KChvYmo6IGFueSkgPT4gb2JqLmNoZWNrZWQpO1xyXG5cclxuICB9XHJcbiAgY3JlYXRlRm9ybSgpIHtcclxuICAgIHRoaXMuZ2FsbGVyeUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgZnJvbURhdGU6IFtkYXlqcyh0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLnN0YXJ0RGF0ZSwgXCJERC1NTS1ZWVlZXCIpLmZvcm1hdChcIllZWVktTU0tRERcIildLFxyXG4gICAgICB0b0RhdGU6IFtkYXlqcyh0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLmVuZERhdGUsIFwiREQtTU0tWVlZWVwiKS5mb3JtYXQoJ1lZWVktTU0tREQnKV0sXHJcbiAgICAgIHR5cGU6ICdjaGVja2xpc3QnLFxyXG4gICAgICBmaWx0ZXJ0eXBlOiAnQ2x1c3RlcnMnLFxyXG4gICAgICBjaGVja2xpc3ROYW1lOiAnJyxcclxuICAgICAgc3RvcmVMaXN0OiBbdGhpcy5zdG9yZXNdLFxyXG4gICAgICB1c2VyTGlzdDogW3RoaXMudXNlckxpc3RdLFxyXG4gICAgICBhbnN3ZXJUeXBlOiBbJ2FsbCddLFxyXG4gICAgICB2aWV3RmxhZzogW2ZhbHNlXSxcclxuICAgICAgdmlld1JlZG86IFtmYWxzZV0sXHJcbiAgICAgIGNoZWNrTGlzdFR5cGU6IFwiY3VzdG9tXCIsXHJcbiAgICAgIHNvdXJjZUNoZWNrTGlzdF9pZDogXCJcIixcclxuICAgICAgQ2x1c3Rlckxpc3Q6IFt0aGlzLmdyb3Vwc10sXHJcbiAgICAgIFRlYW1zTGlzdDogW3RoaXMuVGVhbXNMaXN0XSxcclxuICAgICAgY2hlY2tMaXN0RGVzY3JpcHRpb246IFwiXCIsXHJcbiAgICAgIGZpbHRlcjogXCJcIixcclxuICAgICAgem9uZUxpc3Q6IFt0aGlzLnpvbmVMaXN0XVxyXG4gICAgfSlcclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUpXHJcblxyXG4gIH1cclxuXHJcbiAgZGF0ZWNoYW5nZShldmVudDogVGltZVBlcmlvZCkge1xyXG4gICAgaWYgKCFldmVudC5lbmREYXRlIHx8ICFldmVudC5zdGFydERhdGUpIHtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICB0aGlzLnJlbW92ZVF1ZXJ5UGFyYW1zKClcclxuICAgIHRoaXMucmVzZXRWYWxpZGF0aW9uKCk7XHJcbiAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnZnJvbURhdGUnKT8uc2V0VmFsdWUoZXZlbnQuc3RhcnREYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpKVxyXG4gICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3RvRGF0ZScpPy5zZXRWYWx1ZShldmVudC5lbmREYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpKVxyXG4gICAgdGhpcy50cmF4U2VydmljZS5nZXRTdG9yZXNsaXN0KHsgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRmlsdGVycy5jbGllbnQsIGNsdXN0ZXJzOiB0aGlzLmdyb3VwcywgY2l0eTogW10gfSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gcmVzLmRhdGEuc3RvcmVzRGF0YTtcclxuICAgICAgICAgIHRoaXMuc3RvcmVzID0gcmVzLmRhdGEuc3RvcmVzRGF0YVxyXG4gICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZSh0aGlzLnN0b3JlTGlzdClcclxuICAgICAgICAgIGlmICh0aGlzLnF1ZXJ5UGFyYW1zLmNoZWNrbGlzdFR5cGUgPT0gJ3Rhc2snIHx8IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ3Rhc2snKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0QWxsVGFza3MoZmFsc2UpXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmdldEFsbENoZWNrTGlzdHMoZmFsc2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5xdWVyeVBhcmFtcy5jaGVja2xpc3RUeXBlID09ICd0YXNrJyB8fCB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICd0YXNrJykge1xyXG4gICAgICAgICAgdGhpcy5nZXRBbGxUYXNrcyhmYWxzZSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5nZXRBbGxDaGVja0xpc3RzKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gIH1cclxuICBnZXRBbGxVc2VycygpIHtcclxuICAgIGxldCB0ZWFtc0xpc3QgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLlRlYW1zTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS50ZWFtTmFtZSlcclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0dXNlcnMoeyBjbGllbnRJZDogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCwgdGVhbXM6IHRlYW1zTGlzdCB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMucXVlcnlQYXJhbXMudXNlckVtYWlsKSB7XHJcbiAgICAgICAgICAgIGxldCBnZXR1c2VyID0gcmVzLmRhdGEuZmlsdGVyKChlbGU6IGFueSkgPT4gZWxlLnVzZXJFbWFpbCA9PT0gdGhpcy5xdWVyeVBhcmFtcy51c2VyRW1haWwpXHJcbiAgICAgICAgICAgIHRoaXMudXNlckxpc3QgPSBnZXR1c2VyO1xyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgndXNlckxpc3QnKT8uc2V0VmFsdWUodGhpcy51c2VyTGlzdClcclxuICAgICAgICAgICAgaWYgKHRoaXMucXVlcnlQYXJhbXMuY2hlY2tsaXN0VHlwZSA9PSAndGFzaycpIHtcclxuICAgICAgICAgICAgICB0aGlzLmdldEFsbFRhc2tzKHRydWUpXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRBbGxDaGVja0xpc3RzKHRydWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnVzZXJMaXN0ID0gcmVzLmRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd1c2VyTGlzdCcpPy5zZXRWYWx1ZSh0aGlzLnVzZXJMaXN0KVxyXG4gICAgICAgICAgICBpZiAoKHRoaXMucXVlcnlQYXJhbXMuc3RvcmVJZCkpIHtcclxuICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgndXNlckxpc3QnKT8uc2V0VmFsdWUoW10pXHJcbiAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2ZpbHRlcnR5cGUnKT8uc2V0VmFsdWUoJ0NsdXN0ZXJzJylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5xdWVyeVBhcmFtcy5jaGVja2xpc3RUeXBlID09ICd0YXNrJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0QWxsVGFza3ModHJ1ZSlcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmdldEFsbENoZWNrTGlzdHModHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG5cclxuXHJcblxyXG4gIH1cclxuICBnZXRBbGxTdG9yZXMoKSB7XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldFN0b3Jlc2xpc3QoeyBjbGllbnRJZDogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCwgY2x1c3RlcnM6IHRoaXMuZ3JvdXBzLCBjaXR5OiBbXSB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ID09PSAndW5pZm9ybWRldGVjdGlvbicpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtNzkxXCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMDYxXCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTEyMjNcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE0MjBcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTEyNVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTE3OVwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xMDQwXCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMTMwXCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTEwMDJcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDEwNjlcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTAyMVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTE0MFwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xMDNcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE2MFwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xMzUyXCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMjU0XCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTEzNTRcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE0NDRcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTQwNVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTU2N1wiXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ID09PSAnc3RhZmZsZWZ0aW50aGVtaWRkbGUnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gW3tcclxuICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS03OTFcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMDYxXCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTExMDlcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMjAwXCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE1OTRcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxNzIxXCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE2NjZcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxNzQ3XCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE4NDNcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMTgxXCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE4NjZcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMTA1XCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE5MDdcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMTY4XCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE5NjNcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMjI2XCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE5NzlcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMzQ3XCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE5ODVcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMDUwXCJcclxuICAgICAgICAgICAgfV1cclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3QgPT09ICdtb2JpbGV1c2FnZWRldGVjdGlvbicpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTI2MVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTIyNFwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xNDI3XCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxNjI4XCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE0ODhcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDEyOTBcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTY3MVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTc1M1wiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xOTEwXCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMjc0XCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE5MTRcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIyNjNcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTc5OVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjEyNFwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xOTc1XCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMTg0XCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE5ODVcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIwNTBcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMjA2MFwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjE5MVwiXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmICh0aGlzLnNlbGVjdCAgPT09J3VuaWZvcm1kZXRlY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gW1xyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTEyMzlcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDEwNDZcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtNDBcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE1MVwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xMDg0XCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMTYxXCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTEyNVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTIxXCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE0MDVcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE1NjdcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTQzMFwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTMwN1wiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xODc2XCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMjU4XCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE5OTNcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE4MDlcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMjAzM1wiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjA4MFwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0yMDMxXCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMDI0XCJcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICAgIH1lbHNlIGlmKHRoaXMuc2VsZWN0ID09PSAnZXlldGVzdCcpe1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IFtcclxuICB7XCJzdG9yZUlkXCI6IFwiMTEtMTA1NVwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDk0OFwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0xNDNcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1Q0OTJcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtOTkyXCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJTVDQxOFwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS02M1wiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDQyM1wiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0xMzQ5XCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTUzNlwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0xMzg5XCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTM5N1wiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0yMTJcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1Q1OVwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0xNzY3XCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjA3OFwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0xOTc3XCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjExNlwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0yMDg3XCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjI0NFwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0yMTYzXCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjM1OVwiXHJcbn0sXHJcbl1cclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3QgPT09ICdyZW1vdGVvcHRvbWV0cmlzdCcpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbXHJcbiAge1wic3RvcmVJZFwiOiBcIjExLTk2OFwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDEwNjVcIlxyXG59LFxyXG4gXHJcbntcInN0b3JlSWRcIjogXCIxMS0xMjE2XCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTI0NVwiXHJcbn0sXHJcbiBcclxue1wic3RvcmVJZFwiOiBcIjExLTY5N1wiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDQ4MVwiXHJcbn0sXHJcbiBcclxue1wic3RvcmVJZFwiOiBcIjExLTE4MVwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDI5M1wiXHJcbn0sXHJcbiBcclxue1wic3RvcmVJZFwiOiBcIjExLTIyN1wiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDM0OFwiXHJcbn0sXHJcbiBcclxue1wic3RvcmVJZFwiOiBcIjExLTEzNjBcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMjcwXCJcclxufSxcclxuIFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMTc0OFwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE5OTZcIlxyXG59LFxyXG4gXHJcbntcInN0b3JlSWRcIjogXCIxMS0yMDMxXCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjAyNFwiXHJcbn0sXHJcbiBcclxue1wic3RvcmVJZFwiOiBcIjExLTIxMTVcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMTAxXCJcclxufSxcclxuIFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMjEzM1wiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDI0NzNcIlxyXG59LFxyXG4gXHJcbl1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5zZWxlY3QgPT09ICdzdG9yZWh5Z2llbmVtb25pdG9yaW5nJykge1xyXG4gICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbXHJcbiAge1wic3RvcmVJZFwiOiBcIjExLTQ2N1wiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDY3OVwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0xNjE4XCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTgwM1wiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0xNjkyXCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTc1NlwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0xOTAyXCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjA4N1wiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0yMDAwXCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjM2OFwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0yMDY5XCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjM4NFwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0yMTU5XCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjQzNVwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0yMjE0XCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjQ5NlwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0yMjMzXCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjYwNFwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0yMjcyXCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjYyOVwiXHJcbn0sXHJcbl0gXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gcmVzLmRhdGEuc3RvcmVzRGF0YTtcclxuXHJcbiAgICAgICAgICB9XHJcblxyXG5cclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5xdWVyeVBhcmFtcy5zdG9yZUlkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd1c2VyTGlzdCcpPy5zZXRWYWx1ZShbXSlcclxuICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSByZXMuZGF0YS5zdG9yZXNEYXRhO1xyXG4gICAgICAgICAgICBsZXQgZ2V0c3RvcmUgPSB0aGlzLnN0b3JlTGlzdC5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGUuc3RvcmVJZCA9PT0gdGhpcy5xdWVyeVBhcmFtcy5zdG9yZUlkKVxyXG4gICAgICAgICAgICB0aGlzLnN0b3JlcyA9IGdldHN0b3JlXHJcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZUxpc3QnKT8uc2V0VmFsdWUodGhpcy5zdG9yZXMpXHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5xdWVyeVBhcmFtcy5jaGVja2xpc3RUeXBlID09ICd0YXNrJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0QWxsVGFza3ModHJ1ZSlcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmdldEFsbENoZWNrTGlzdHModHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5xdWVyeVBhcmFtcy51c2VyRW1haWwpIHtcclxuICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZShbXSlcclxuICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2ZpbHRlcnR5cGUnKT8uc2V0VmFsdWUoJ1RlYW1zJylcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVzID0gcmVzLmRhdGEuc3RvcmVzRGF0YVxyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc3RvcmVMaXN0Jyk/LnNldFZhbHVlKHRoaXMuc3RvcmVMaXN0KVxyXG4gICAgICAgICAgICBpZiAodGhpcy5xdWVyeVBhcmFtcy5jaGVja2xpc3RUeXBlID09ICd0YXNrJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0QWxsVGFza3ModHJ1ZSlcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmdldEFsbENoZWNrTGlzdHModHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbXTtcclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld25vRGF0YSA9IHRydWUsXHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcblxyXG4gICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gW107XHJcbiAgICAgICAgdGhpcy52aWV3bG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudmlld25vRGF0YSA9IHRydWUsXHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcblxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxDaGVja0xpc3RzKHR5cGU6IGFueSkge1xyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuc3RvcmVzPy5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS5zdG9yZUlkKVxyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgZnJvbURhdGU6IHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdmcm9tRGF0ZScpPy52YWx1ZSxcclxuICAgICAgdG9EYXRlOiB0aGlzLmdhbGxlcnlGb3JtLmdldCgndG9EYXRlJyk/LnZhbHVlLFxyXG4gICAgICBzdG9yZUlkOiBzdG9yZXMsXHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckZpbHRlcnM/LmNsaWVudCxcclxuICAgICAgc29ydENvbHVtbk5hbWU6IFwiY2hlY2tMaXN0TmFtZVwiLFxyXG4gICAgICBzb3J0Qnk6IDFcclxuICAgIH1cclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0Q2hlY2tsaXN0cyhwYXlsb2FkKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgLy8gdGhpcy5jaGVja2xpc3RzID0gcmVzLmRhdGEuY2hlY2tsaXN0RGF0YVxyXG4gICAgICAgICAgdGhpcy5jaGVja2xpc3RzID0gW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJfaWRcIjogXCI2Nzg5ZTNjN2E1NjgzYzU4MjE1ZWMwODlcIixcclxuICAgICAgICAgICAgICBcInNvdXJjZUNoZWNrTGlzdF9pZFwiOiBcIjY3ODllM2M3YTU2ODNjNTgyMTVlYzA4OVwiLFxyXG4gICAgICAgICAgICAgIFwiY2hlY2tMaXN0TmFtZVwiOiBcIkRhaWx5IHN0b3JlIGNoZWNrbGlzdCAoTmV3KVwiLFxyXG4gICAgICAgICAgICAgIFwiY2hlY2tMaXN0VHlwZVwiOiBcImN1c3RvbVwiLFxyXG4gICAgICAgICAgICAgIFwiY3JlYXRlZEJ5TmFtZVwiOiBcIllhbWluaVwiLFxyXG4gICAgICAgICAgICAgIFwic3RvcmVDb3VudFwiOiAyMjEzLFxyXG4gICAgICAgICAgICAgIFwic2NoZWR1bGVSZXBlYXRlZFR5cGVcIjogXCJ3ZWVrbHlcIixcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlU3RhcnRUaW1lXCI6IFwiMTE6MDAgQU1cIixcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlRW5kVGltZVwiOiBcIjAxOjMwIFBNXCIsXHJcbiAgICAgICAgICAgICAgXCJjb3ZlcmFnZVwiOiBcInN0b3JlXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3REZXNjcmlwdGlvblwiOiBcIk5lZWRzIHRvIGJlIGZpbGxlZCBieSB0aGUgc3RvcmVcIixcclxuICAgICAgICAgICAgICBcInB1Ymxpc2hcIjogdHJ1ZVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJfaWRcIjogXCI2NmIwYTM4NThhYmRiZTIzNjYxYzhjMGJcIixcclxuICAgICAgICAgICAgICBcInNvdXJjZUNoZWNrTGlzdF9pZFwiOiBcIjY2YjBhMzg1OGFiZGJlMjM2NjFjOGMwYlwiLFxyXG4gICAgICAgICAgICAgIFwiY2hlY2tMaXN0TmFtZVwiOiBcIkVPRCBTdG9yZSBDaGVja2xpc3QgTmV3XCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3RUeXBlXCI6IFwiY3VzdG9tXCIsXHJcbiAgICAgICAgICAgICAgXCJjcmVhdGVkQnlOYW1lXCI6IFwiWWFtaW5pXCIsXHJcbiAgICAgICAgICAgICAgXCJzdG9yZUNvdW50XCI6IDIyMTMsXHJcbiAgICAgICAgICAgICAgXCJzY2hlZHVsZVJlcGVhdGVkVHlwZVwiOiBcImRhaWx5XCIsXHJcbiAgICAgICAgICAgICAgXCJzY2hlZHVsZVN0YXJ0VGltZVwiOiBcIjA2OjAwIFBNXCIsXHJcbiAgICAgICAgICAgICAgXCJzY2hlZHVsZUVuZFRpbWVcIjogXCIxMTozMCBQTVwiLFxyXG4gICAgICAgICAgICAgIFwiY292ZXJhZ2VcIjogXCJzdG9yZVwiLFxyXG4gICAgICAgICAgICAgIFwiY2hlY2tMaXN0RGVzY3JpcHRpb25cIjogXCJOZWVkcyB0byBiZSBmaWxsZWQgYnkgdGhlIHN0b3JlXCIsXHJcbiAgICAgICAgICAgICAgXCJwdWJsaXNoXCI6IHRydWVcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwiX2lkXCI6IFwiNjc4OWUzYzdhNTY4M2M1ODIxNWVjMDgxXCIsXHJcbiAgICAgICAgICAgICAgXCJzb3VyY2VDaGVja0xpc3RfaWRcIjogXCJmYWN0b3J5XCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3ROYW1lXCI6IFwiTGVuc2thcnQgRmFjdG9yeVwiLFxyXG4gICAgICAgICAgICAgIFwiY2hlY2tMaXN0VHlwZVwiOiBcIkFJXCIsXHJcbiAgICAgICAgICAgICAgXCJjcmVhdGVkQnlOYW1lXCI6IFwiWWFtaW5pXCIsXHJcbiAgICAgICAgICAgICAgXCJzdG9yZUNvdW50XCI6IDIyMTMsXHJcbiAgICAgICAgICAgICAgXCJzY2hlZHVsZVJlcGVhdGVkVHlwZVwiOiBcIndlZWtseVwiLFxyXG4gICAgICAgICAgICAgIFwic2NoZWR1bGVTdGFydFRpbWVcIjogXCIxMTowMCBBTVwiLFxyXG4gICAgICAgICAgICAgIFwic2NoZWR1bGVFbmRUaW1lXCI6IFwiMDE6MzAgUE1cIixcclxuICAgICAgICAgICAgICBcImNvdmVyYWdlXCI6IFwic3RvcmVcIixcclxuICAgICAgICAgICAgICBcImNoZWNrTGlzdERlc2NyaXB0aW9uXCI6IFwiRW5zdXJlcyBhbGwgdGhlIG1hbmRhdG9yeSBzdGVwcyBhcmUgZG9uZVwiLFxyXG4gICAgICAgICAgICAgIFwicHVibGlzaFwiOiB0cnVlXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcIl9pZFwiOiBcIjY3NDZkM2U4YTczYzU2ZTZjOTBiMWE0MlwiLFxyXG4gICAgICAgICAgICAgIFwic291cmNlQ2hlY2tMaXN0X2lkXCI6IFwiY3VzdG9tZXJ1bmF0dGVuZGVkXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3ROYW1lXCI6IFwiQ3VzdG9tZXIgVW5hdHRlbmRlZFwiLFxyXG4gICAgICAgICAgICAgIFwiY2hlY2tMaXN0VHlwZVwiOiBcIkFJXCIsXHJcbiAgICAgICAgICAgICAgXCJjcmVhdGVkQnlOYW1lXCI6IFwiUHJhdmVlbiBSYWp1XCIsXHJcbiAgICAgICAgICAgICAgXCJzdG9yZUNvdW50XCI6IDIxNjcsXHJcbiAgICAgICAgICAgICAgXCJzY2hlZHVsZVJlcGVhdGVkVHlwZVwiOiBcImRhaWx5XCIsXHJcbiAgICAgICAgICAgICAgXCJzY2hlZHVsZVN0YXJ0VGltZVwiOiBcIjA2OjAwIEFNXCIsXHJcbiAgICAgICAgICAgICAgXCJzY2hlZHVsZUVuZFRpbWVcIjogXCIxMTo1OSBQTVwiLFxyXG4gICAgICAgICAgICAgIFwiY292ZXJhZ2VcIjogXCJzdG9yZVwiLFxyXG4gICAgICAgICAgICAgIFwiY2hlY2tMaXN0RGVzY3JpcHRpb25cIjogXCJUbyBlbnN1cmUgdGhhdCBjdXN0b21lcnMgYXJlIG5vdCBsZWZ0IHVuYXR0ZW5kZWQgZm9yIGV4dGVuZGVkIHBlcmlvZHMsIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gZGlzc2F0aXNmYWN0aW9uIG9yIGxvc3Qgc2FsZXMuXCIsXHJcbiAgICAgICAgICAgICAgXCJwdWJsaXNoXCI6IHRydWVcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwiX2lkXCI6IFwiNjc2ZTUzZTMwZmVjNmIzZTRlZmM0ZWY2XCIsXHJcbiAgICAgICAgICAgICAgXCJzb3VyY2VDaGVja0xpc3RfaWRcIjogXCJleWV0ZXN0XCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3ROYW1lXCI6IFwiRXllIFRlc3QgQ29tcGxpYW5jZVwiLFxyXG4gICAgICAgICAgICAgIFwiY2hlY2tMaXN0VHlwZVwiOiBcIkFJXCIsXHJcbiAgICAgICAgICAgICAgXCJjcmVhdGVkQnlOYW1lXCI6IFwiQmVqYW5cIixcclxuICAgICAgICAgICAgICBcInN0b3JlQ291bnRcIjogMCxcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlUmVwZWF0ZWRUeXBlXCI6IFwiZGFpbHlcIixcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlU3RhcnRUaW1lXCI6IFwiMTA6MDAgQU1cIixcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlRW5kVGltZVwiOiBcIjEwOjAwIFBNXCIsXHJcbiAgICAgICAgICAgICAgXCJjb3ZlcmFnZVwiOiBcInN0b3JlXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3REZXNjcmlwdGlvblwiOiBcIlZlcmlmeSB3aGV0aGVyIG9wdG9tZXRyaXN0cyBhcmUgYWRoZXJpbmcgdG8gdGhlIHByZXNjcmliZWQgMTItc3RlcCBleWUgdGVzdCBwcm9jZXNzIGR1cmluZyBwYXRpZW50IGFzc2Vzc21lbnRzLlwiLFxyXG4gICAgICAgICAgICAgIFwicHVibGlzaFwiOiB0cnVlXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcIl9pZFwiOiBcIjY3NDZkM2ViYTczYzU2ZTZjOTBiMWE0M1wiLFxyXG4gICAgICAgICAgICAgIFwic291cmNlQ2hlY2tMaXN0X2lkXCI6IFwibW9iaWxldXNhZ2VkZXRlY3Rpb25cIixcclxuICAgICAgICAgICAgICBcImNoZWNrTGlzdE5hbWVcIjogXCJNb2JpbGUgdXNhZ2UgZGV0ZWN0aW9uXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3RUeXBlXCI6IFwiQUlcIixcclxuICAgICAgICAgICAgICBcImNyZWF0ZWRCeU5hbWVcIjogXCJQcmF2ZWVuIFJhanVcIixcclxuICAgICAgICAgICAgICBcInN0b3JlQ291bnRcIjogMjExMCxcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlUmVwZWF0ZWRUeXBlXCI6IFwiZGFpbHlcIixcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlU3RhcnRUaW1lXCI6IFwiMDY6MDAgQU1cIixcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlRW5kVGltZVwiOiBcIjExOjU5IFBNXCIsXHJcbiAgICAgICAgICAgICAgXCJjb3ZlcmFnZVwiOiBcInN0b3JlXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3REZXNjcmlwdGlvblwiOiBcIlRvIHByZXZlbnQgc3RhZmYgbWVtYmVycyBmcm9tIHVzaW5nIHBlcnNvbmFsIG1vYmlsZSBkZXZpY2VzIGR1cmluZyB3b3JrIGhvdXJzLCB3aGljaCBjYW4gbGVhZCB0byBkaXN0cmFjdGlvbnMgYW5kIHJlZHVjZWQgcHJvZHVjdGl2aXR5LlwiLFxyXG4gICAgICAgICAgICAgIFwicHVibGlzaFwiOiB0cnVlXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcIl9pZFwiOiBcIjY3NmU3MzEyMGZlYzZiM2U0ZWZjNGVmY1wiLFxyXG4gICAgICAgICAgICAgIFwic291cmNlQ2hlY2tMaXN0X2lkXCI6IFwicmVtb3Rlb3B0b21ldHJpc3RcIixcclxuICAgICAgICAgICAgICBcImNoZWNrTGlzdE5hbWVcIjogXCJSZW1vdGUgT3B0b21ldHJpc3QgQ29tcGxpYW5jZVwiLFxyXG4gICAgICAgICAgICAgIFwiY2hlY2tMaXN0VHlwZVwiOiBcIkFJXCIsXHJcbiAgICAgICAgICAgICAgXCJjcmVhdGVkQnlOYW1lXCI6IFwiQmVqYW5cIixcclxuICAgICAgICAgICAgICBcInN0b3JlQ291bnRcIjogMCxcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlUmVwZWF0ZWRUeXBlXCI6IFwiZGFpbHlcIixcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlU3RhcnRUaW1lXCI6IFwiMTA6MDAgQU1cIixcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlRW5kVGltZVwiOiBcIjEwOjAwIFBNXCIsXHJcbiAgICAgICAgICAgICAgXCJjb3ZlcmFnZVwiOiBcInN0b3JlXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3REZXNjcmlwdGlvblwiOiBcIlVzZSB2b2ljZSByZWNvZ25pdGlvbiB0byBtb25pdG9yIGFuZCBlbnN1cmUgb3B0b21ldHJpc3RzIGNvbmR1Y3RpbmcgcmVtb3RlIGNvbnN1bHRhdGlvbnMgZm9sbG93IHRoZSAxMi1zdGVwIGV5ZSB0ZXN0IHByb2Nlc3MuXCIsXHJcbiAgICAgICAgICAgICAgXCJwdWJsaXNoXCI6IHRydWVcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwiX2lkXCI6IFwiNjc0NmQzZWRhNzNjNTZlNmM5MGIxYTQ2XCIsXHJcbiAgICAgICAgICAgICAgXCJzb3VyY2VDaGVja0xpc3RfaWRcIjogXCJzdGFmZmxlZnRpbnRoZW1pZGRsZVwiLFxyXG4gICAgICAgICAgICAgIFwiY2hlY2tMaXN0TmFtZVwiOiBcIlN0YWZmIGxlZnQgaW4gdGhlIG1pZGRsZVwiLFxyXG4gICAgICAgICAgICAgIFwiY2hlY2tMaXN0VHlwZVwiOiBcIkFJXCIsXHJcbiAgICAgICAgICAgICAgXCJjcmVhdGVkQnlOYW1lXCI6IFwiUHJhdmVlbiBSYWp1XCIsXHJcbiAgICAgICAgICAgICAgXCJzdG9yZUNvdW50XCI6IDIxNjcsXHJcbiAgICAgICAgICAgICAgXCJzY2hlZHVsZVJlcGVhdGVkVHlwZVwiOiBcImRhaWx5XCIsXHJcbiAgICAgICAgICAgICAgXCJzY2hlZHVsZVN0YXJ0VGltZVwiOiBcIjA2OjAwIEFNXCIsXHJcbiAgICAgICAgICAgICAgXCJzY2hlZHVsZUVuZFRpbWVcIjogXCIxMTo1OSBQTVwiLFxyXG4gICAgICAgICAgICAgIFwiY292ZXJhZ2VcIjogXCJzdG9yZVwiLFxyXG4gICAgICAgICAgICAgIFwiY2hlY2tMaXN0RGVzY3JpcHRpb25cIjogXCJUbyBwcmV2ZW50IGVtcGxveWVlcyBmcm9tIGxlYXZpbmcgdGhlaXIgcG9zdHMgZHVyaW5nIG9wZXJhdGluZyBob3VycywgZW5zdXJpbmcgYWRlcXVhdGUgc3RhZmZpbmcgbGV2ZWxzIGFuZCBjdXN0b21lciBzZXJ2aWNlLlwiLFxyXG4gICAgICAgICAgICAgIFwicHVibGlzaFwiOiB0cnVlXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcIl9pZFwiOiBcIjY3NmU3Mzk3MGZlYzZiM2U0ZWZjNGVmZVwiLFxyXG4gICAgICAgICAgICAgIFwic291cmNlQ2hlY2tMaXN0X2lkXCI6IFwic3RvcmVoeWdpZW5lbW9uaXRvcmluZ1wiLFxyXG4gICAgICAgICAgICAgIFwiY2hlY2tMaXN0TmFtZVwiOiBcIlN0b3JlIEh5Z2llbmUgTW9uaXRvcmluZ1wiLFxyXG4gICAgICAgICAgICAgIFwiY2hlY2tMaXN0VHlwZVwiOiBcIkFJXCIsXHJcbiAgICAgICAgICAgICAgXCJjcmVhdGVkQnlOYW1lXCI6IFwiQmVqYW5cIixcclxuICAgICAgICAgICAgICBcInN0b3JlQ291bnRcIjogMCxcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlUmVwZWF0ZWRUeXBlXCI6IFwiZGFpbHlcIixcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlU3RhcnRUaW1lXCI6IFwiMTA6MDAgQU1cIixcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlRW5kVGltZVwiOiBcIjEwOjAwIFBNXCIsXHJcbiAgICAgICAgICAgICAgXCJjb3ZlcmFnZVwiOiBcInN0b3JlXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3REZXNjcmlwdGlvblwiOiBcIkFzc2VzcyBzdG9yZSBjbGVhbmxpbmVzcyBieSBkZXRlcm1pbmluZyBpZiB0aGUgZGlzY3Vzc2lvbiB0YWJsZXMgYXJlIHByb3Blcmx5IGNsZWFuZWQgYW5kIG1haW50YWluZWQuXCIsXHJcbiAgICAgICAgICAgICAgXCJwdWJsaXNoXCI6IHRydWVcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwiX2lkXCI6IFwiNjc0NmQzZjBhNzNjNTZlNmM5MGIxYTYwXCIsXHJcbiAgICAgICAgICAgICAgXCJzb3VyY2VDaGVja0xpc3RfaWRcIjogXCJzdG9yZW9wZW5hbmRjbG9zZVwiLFxyXG4gICAgICAgICAgICAgIFwiY2hlY2tMaXN0TmFtZVwiOiBcIlN0b3JlIE9wZW4gJiBDbG9zZVwiLFxyXG4gICAgICAgICAgICAgIFwiY2hlY2tMaXN0VHlwZVwiOiBcIkFJXCIsXHJcbiAgICAgICAgICAgICAgXCJjcmVhdGVkQnlOYW1lXCI6IFwiUHJhdmVlbiBSYWp1XCIsXHJcbiAgICAgICAgICAgICAgXCJzdG9yZUNvdW50XCI6IDIxMTAsXHJcbiAgICAgICAgICAgICAgXCJzY2hlZHVsZVJlcGVhdGVkVHlwZVwiOiBcImRhaWx5XCIsXHJcbiAgICAgICAgICAgICAgXCJzY2hlZHVsZVN0YXJ0VGltZVwiOiBcIjA2OjAwIEFNXCIsXHJcbiAgICAgICAgICAgICAgXCJzY2hlZHVsZUVuZFRpbWVcIjogXCIxMTo1OSBQTVwiLFxyXG4gICAgICAgICAgICAgIFwiY292ZXJhZ2VcIjogXCJzdG9yZVwiLFxyXG4gICAgICAgICAgICAgIFwiY2hlY2tMaXN0RGVzY3JpcHRpb25cIjogXCJUbyBlbnN1cmUgdGhhdCB0aGUgc3RvcmUgb3BlbnMgYW5kIGNsb3NlcyBhdCB0aGUgZGVzaWduYXRlZCB0aW1lcywgbWFpbnRhaW5pbmcgY29uc2lzdGVudCBvcGVyYXRpbmcgaG91cnMgZm9yIGN1c3RvbWVycy5cIixcclxuICAgICAgICAgICAgICBcInB1Ymxpc2hcIjogdHJ1ZVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJfaWRcIjogXCI2NzQ2ZDNmM2E3M2M1NmU2YzkwYjFhNjFcIixcclxuICAgICAgICAgICAgICBcInNvdXJjZUNoZWNrTGlzdF9pZFwiOiBcInVuaWZvcm1kZXRlY3Rpb25cIixcclxuICAgICAgICAgICAgICBcImNoZWNrTGlzdE5hbWVcIjogXCJVbmlmb3JtIGRldGVjdGlvblwiLFxyXG4gICAgICAgICAgICAgIFwiY2hlY2tMaXN0VHlwZVwiOiBcIkFJXCIsXHJcbiAgICAgICAgICAgICAgXCJjcmVhdGVkQnlOYW1lXCI6IFwiUHJhdmVlbiBSYWp1XCIsXHJcbiAgICAgICAgICAgICAgXCJzdG9yZUNvdW50XCI6IDIyODksXHJcbiAgICAgICAgICAgICAgXCJzY2hlZHVsZVJlcGVhdGVkVHlwZVwiOiBcImRhaWx5XCIsXHJcbiAgICAgICAgICAgICAgXCJzY2hlZHVsZVN0YXJ0VGltZVwiOiBcIjA2OjAwIEFNXCIsXHJcbiAgICAgICAgICAgICAgXCJzY2hlZHVsZUVuZFRpbWVcIjogXCIxMTo1OSBQTVwiLFxyXG4gICAgICAgICAgICAgIFwiY292ZXJhZ2VcIjogXCJzdG9yZVwiLFxyXG4gICAgICAgICAgICAgIFwiY2hlY2tMaXN0RGVzY3JpcHRpb25cIjogXCJUbyBlbnN1cmUgdGhhdCBhbGwgc3RhZmYgbWVtYmVycyBhcmUgYWRoZXJpbmcgdG8gdGhlIGNvbXBhbnkncyBkcmVzcyBjb2RlIGFuZCBtYWludGFpbmluZyBhIHByb2Zlc3Npb25hbCBhcHBlYXJhbmNlLlwiLFxyXG4gICAgICAgICAgICAgIFwicHVibGlzaFwiOiB0cnVlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIF1cclxuXHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMucXVlcnlQYXJhbXMuc291cmNlQ2hlY2tMaXN0X2lkICYmIHRoaXMucXVlcnlQYXJhbXMuY2hlY2tsaXN0VHlwZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzb3VyY2VDaGVja0xpc3RfaWQnKT8uc2V0VmFsdWUodGhpcy5xdWVyeVBhcmFtcy5zb3VyY2VDaGVja0xpc3RfaWQpXHJcbiAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2NoZWNrTGlzdFR5cGUnKT8uc2V0VmFsdWUodGhpcy5xdWVyeVBhcmFtcy5jaGVja2xpc3RUeXBlKVxyXG4gICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd0eXBlJyk/LnNldFZhbHVlKFwiY2hlY2tsaXN0XCIpXHJcblxyXG4gICAgICAgICAgICAgIGxldCBnZXRjaGVja2xpc3QgPSB0aGlzLmNoZWNrbGlzdHMuZmlsdGVyKChlbGU6IGFueSkgPT4gZWxlLnNvdXJjZUNoZWNrTGlzdF9pZCA9PT0gdGhpcy5xdWVyeVBhcmFtcy5zb3VyY2VDaGVja0xpc3RfaWQpXHJcbiAgICAgICAgICAgICAgaWYgKGdldGNoZWNrbGlzdCAmJiBnZXRjaGVja2xpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGdldGNoZWNrbGlzdFswXS5jaGVja0xpc3RUeXBlID09PSBcIkFJXCIpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zaG93ZmxhZyA9IGZhbHNlXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnY2hlY2tsaXN0TmFtZScpPy5zZXRWYWx1ZShnZXRjaGVja2xpc3RbMF0/LmNoZWNrTGlzdE5hbWUpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnY2hlY2tMaXN0RGVzY3JpcHRpb24nKT8uc2V0VmFsdWUoZ2V0Y2hlY2tsaXN0WzBdPy5jaGVja0xpc3REZXNjcmlwdGlvbilcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0TmFtZSA9IGdldGNoZWNrbGlzdFswXT8uY2hlY2tMaXN0TmFtZVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAodGhpcy5xdWVyeVBhcmFtcy5jaGVja2xpc3RUeXBlID09PSAnc3RvcmVvcGVuYW5kY2xvc2UnKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCA9ICdzdG9yZW9wZW5hbmRjbG9zZSdcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmVPcGVuY2xvc2VsaXN0KGZhbHNlKVxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5ib3hpbWFnZUNoZWNrbGlzdC5pbmNsdWRlcyh0aGlzLnF1ZXJ5UGFyYW1zLmNoZWNrbGlzdFR5cGUpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCA9IHRoaXMucXVlcnlQYXJhbXMuY2hlY2tsaXN0VHlwZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5xdWV1ZWFsZXJ0bGlzdChmYWxzZSlcclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudmlkZW9DaGVja2xpc3QuaW5jbHVkZXModGhpcy5xdWVyeVBhcmFtcy5jaGVja2xpc3RUeXBlKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QgPSB0aGlzLnF1ZXJ5UGFyYW1zLmNoZWNrbGlzdFR5cGU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbWVydW5hdHRlbmRlZGxpc3QoZmFsc2UpXHJcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmltYWdlQ2hlY2tsaXN0LmluY2x1ZGVzKHRoaXMucXVlcnlQYXJhbXMuY2hlY2tsaXN0VHlwZSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5xdWVyeVBhcmFtcy5jaGVja2xpc3RUeXBlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRtb2JpbGVVc2FnZURhdGFsaXN0KGZhbHNlKVxyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlICYmIHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tMaXN0VHlwZSAhPSAnJykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2NoZWNrTGlzdFR5cGUnKT8uc2V0VmFsdWUodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja0xpc3RUeXBlKVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnY2hlY2tMaXN0VHlwZScpPy5zZXRWYWx1ZSh0aGlzLmNoZWNrbGlzdHNbMF0/LmNoZWNrTGlzdFR5cGUpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlICYmIHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tsaXN0TmFtZSAhPSAnJykge1xyXG4gICAgICAgICAgICAgICAgbGV0IGdldGNoZWNrbGlzdCA9IHRoaXMuY2hlY2tsaXN0cy5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGUuY2hlY2tMaXN0TmFtZSA9PT0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja2xpc3ROYW1lKVxyXG4gICAgICAgICAgICAgICAgaWYgKGdldGNoZWNrbGlzdCAmJiBnZXRjaGVja2xpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoZ2V0Y2hlY2tsaXN0WzBdLmNoZWNrTGlzdFR5cGUgPT09IFwiQUlcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd2ZsYWcgPSBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdmaWx0ZXJ0eXBlJyk/LnNldFZhbHVlKGdldGNoZWNrbGlzdFswXT8uY292ZXJhZ2UgPT09ICd1c2VyJyA/IFwiVGVhbXNcIiA6IFwiQ2x1c3RlcnNcIilcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jb3ZlcmFnZURhdGEoZ2V0Y2hlY2tsaXN0WzBdPy5jb3ZlcmFnZSlcclxuXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdjaGVja0xpc3RUeXBlJyk/LnNldFZhbHVlKGdldGNoZWNrbGlzdFswXT8uY2hlY2tMaXN0VHlwZSlcclxuICAgICAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2NoZWNrbGlzdE5hbWUnKT8uc2V0VmFsdWUoZ2V0Y2hlY2tsaXN0WzBdPy5jaGVja0xpc3ROYW1lKVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrbGlzdE5hbWUgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmNoZWNrbGlzdE5hbWVcclxuICAgICAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3NvdXJjZUNoZWNrTGlzdF9pZCcpPy5zZXRWYWx1ZShnZXRjaGVja2xpc3RbMF0/LnNvdXJjZUNoZWNrTGlzdF9pZClcclxuICAgICAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2NoZWNrTGlzdERlc2NyaXB0aW9uJyk/LnNldFZhbHVlKGdldGNoZWNrbGlzdFswXT8uY2hlY2tMaXN0RGVzY3JpcHRpb24pXHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnZmlsdGVydHlwZScpPy5zZXRWYWx1ZSh0aGlzLmNoZWNrbGlzdHNbMF0/LmNvdmVyYWdlID09PSAndXNlcicgPyBcIlRlYW1zXCIgOiBcIkNsdXN0ZXJzXCIpXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY292ZXJhZ2VEYXRhKHRoaXMuY2hlY2tsaXN0c1swXT8uY292ZXJhZ2UpXHJcblxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnY2hlY2tMaXN0VHlwZScpPy5zZXRWYWx1ZSh0aGlzLmNoZWNrbGlzdHNbMF0/LmNoZWNrTGlzdFR5cGUpXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdjaGVja2xpc3ROYW1lJyk/LnNldFZhbHVlKHRoaXMuY2hlY2tsaXN0c1swXT8uY2hlY2tMaXN0TmFtZSlcclxuICAgICAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2NoZWNrTGlzdERlc2NyaXB0aW9uJyk/LnNldFZhbHVlKHRoaXMuY2hlY2tsaXN0c1swXT8uY2hlY2tMaXN0RGVzY3JpcHRpb24pXHJcblxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrbGlzdE5hbWUgPSB0aGlzLmNoZWNrbGlzdHNbMF0/LmNoZWNrTGlzdE5hbWVcclxuICAgICAgICAgICAgICAgICAgbGV0IGdldGNoZWNrbGlzdCA9IHRoaXMuY2hlY2tsaXN0cy5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGUuY2hlY2tMaXN0TmFtZSA9PT0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja2xpc3ROYW1lKVxyXG4gICAgICAgICAgICAgICAgICBpZiAoZ2V0Y2hlY2tsaXN0ICYmIGdldGNoZWNrbGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGdldGNoZWNrbGlzdFswXS5jaGVja0xpc3RUeXBlID09PSBcIkFJXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd2ZsYWcgPSBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrTGlzdERlc2NyaXB0aW9uID0gZ2V0Y2hlY2tsaXN0WzBdPy5jaGVja0xpc3REZXNjcmlwdGlvblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdjaGVja0xpc3REZXNjcmlwdGlvbicpPy5zZXRWYWx1ZShnZXRjaGVja2xpc3RbMF0/LmNoZWNrTGlzdERlc2NyaXB0aW9uKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzb3VyY2VDaGVja0xpc3RfaWQnKT8uc2V0VmFsdWUoZ2V0Y2hlY2tsaXN0WzBdPy5zb3VyY2VDaGVja0xpc3RfaWQpXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnZmlsdGVydHlwZScpPy5zZXRWYWx1ZSh0aGlzLmNoZWNrbGlzdHNbMF0/LmNvdmVyYWdlID09PSAndXNlcicgPyBcIlRlYW1zXCIgOiBcIkNsdXN0ZXJzXCIpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvdmVyYWdlRGF0YSh0aGlzLmNoZWNrbGlzdHNbMF0/LmNvdmVyYWdlKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2NoZWNrTGlzdFR5cGUnKT8uc2V0VmFsdWUodGhpcy5jaGVja2xpc3RzWzBdPy5jaGVja0xpc3RUeXBlKVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY2hlY2tsaXN0c1swXS5jaGVja0xpc3RUeXBlID09PSBcIkFJXCIpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zaG93ZmxhZyA9IGZhbHNlXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnY2hlY2tsaXN0TmFtZScpPy5zZXRWYWx1ZSh0aGlzLmNoZWNrbGlzdHNbMF0/LmNoZWNrTGlzdE5hbWUpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnY2hlY2tMaXN0RGVzY3JpcHRpb24nKT8uc2V0VmFsdWUodGhpcy5jaGVja2xpc3RzWzBdPy5jaGVja0xpc3REZXNjcmlwdGlvbilcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0TmFtZSA9IHRoaXMuY2hlY2tsaXN0c1swXT8uY2hlY2tMaXN0TmFtZVxyXG4gICAgICAgICAgICAgICAgbGV0IGdldGNoZWNrbGlzdCA9IHRoaXMuY2hlY2tsaXN0cy5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGUuY2hlY2tMaXN0TmFtZSA9PT0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja2xpc3ROYW1lKVxyXG4gICAgICAgICAgICAgICAgaWYgKGdldGNoZWNrbGlzdCAmJiBnZXRjaGVja2xpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrTGlzdERlc2NyaXB0aW9uID0gZ2V0Y2hlY2tsaXN0WzBdPy5jaGVja0xpc3REZXNjcmlwdGlvblxyXG5cclxuICAgICAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3NvdXJjZUNoZWNrTGlzdF9pZCcpPy5zZXRWYWx1ZShnZXRjaGVja2xpc3RbMF0/LnNvdXJjZUNoZWNrTGlzdF9pZClcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQgPT09ICdzdG9yZW9wZW5hbmRjbG9zZScpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdCA9ICdzdG9yZW9wZW5hbmRjbG9zZSdcclxuICAgICAgICAgICAgICB0aGlzLnN0b3JlT3BlbmNsb3NlbGlzdChmYWxzZSlcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmJveGltYWdlQ2hlY2tsaXN0LmluY2x1ZGVzKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkKSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd6b25lTGlzdCcpPy5zZXRWYWx1ZShbXSlcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdCA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkXHJcbiAgICAgICAgICAgICAgdGhpcy5xdWV1ZWFsZXJ0bGlzdChmYWxzZSlcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmltYWdlQ2hlY2tsaXN0LmluY2x1ZGVzKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkKSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQ7XHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRtb2JpbGVVc2FnZURhdGFsaXN0KGZhbHNlKVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudmlkZW9DaGVja2xpc3QuaW5jbHVkZXModGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3QgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZDtcclxuICAgICAgICAgICAgICB0aGlzLmN1c3RvbWVydW5hdHRlbmRlZGxpc3QoZmFsc2UpXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3QgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnID8gXCJjdXN0b21cIiA6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZTtcclxuICAgICAgICAgICAgICBpZiAodHlwZSkge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZSlcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnKSB7XHJcbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcnR5cGUgPT09ICdDbHVzdGVycycpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgndXNlckxpc3QnKT8uc2V0VmFsdWUoW10pXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3Rkcm9wZG93bigpO1xyXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiMDAwMDAwMDAwMDAwMDAwMDAwMFwiKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZUxpc3QnKT8uc2V0VmFsdWUoW10pXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyTGlzdGRyb3Bkb3duKCk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ZHJvcGRvd25UYXNrKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0cyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2NoZWNrbGlzdE5hbWUnKT8uc2V0VmFsdWUoJycpXHJcbiAgICAgICAgICB0aGlzLnZpZXdsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnZpZXdub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWVcclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICB0aGlzLmNoZWNrbGlzdHMgPSBbXTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuICByZW1vdmVRdWVyeVBhcmFtcygpIHtcclxuICAgIHRoaXMucXVlcnlQYXJhbXMgPSB7fVxyXG4gICAgY29uc3QgdXJsV2l0aG91dFBhcmFtcyA9IHRoaXMubG9jYXRpb24ucGF0aCgpLnNwbGl0KCc/JylbMF07XHJcbiAgICB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZSh1cmxXaXRob3V0UGFyYW1zKTtcclxuICB9XHJcbiAgb25UZWFtc1NlbGVjdChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnVGVhbXNMaXN0Jyk/LnNldFZhbHVlKGV2ZW50KVxyXG4gICAgbGV0IHRlYW1zTGlzdCA9IGV2ZW50Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnRlYW1OYW1lKVxyXG4gICAgdGhpcy50cmF4U2VydmljZS5nZXR1c2Vycyh7IGNsaWVudElkOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LCB0ZWFtczogdGVhbXNMaXN0IH0pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLnVzZXJMaXN0ID0gcmVzLmRhdGE7XHJcbiAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgndXNlckxpc3QnKT8uc2V0VmFsdWUodGhpcy51c2VyTGlzdClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIG9uZ3JvdXBTZWxlY3QoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5yZW1vdmVRdWVyeVBhcmFtcygpXHJcbiAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnQ2x1c3Rlckxpc3QnKT8uc2V0VmFsdWUoZXZlbnQpXHJcbiAgICB0aGlzLmdyb3VwcyA9IGV2ZW50Lm1hcCgoZWw6IGFueSkgPT4gZWwuZ3JvdXBOYW1lKVxyXG4gICAgLy8gdGhpcy5nZXRBbGxTdG9yZXMoKVxyXG4gICAgdGhpcy50cmF4U2VydmljZS5nZXRTdG9yZXNsaXN0KHsgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRmlsdGVycy5jbGllbnQsIGNsdXN0ZXJzOiB0aGlzLmdyb3VwcywgY2l0eTogW10gfSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gcmVzLmRhdGEuc3RvcmVzRGF0YTtcclxuICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZUxpc3QnKT8uc2V0VmFsdWUodGhpcy5zdG9yZUxpc3QpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG4gIGZpbHRlckNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnJlbW92ZVF1ZXJ5UGFyYW1zKClcclxuICAgIGlmIChldmVudCA9PT0gJ1RlYW1zJykge1xyXG4gICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc3RvcmVzJyk/LnNldFZhbHVlKFtdKVxyXG4gICAgICBsZXQgdGVhbXNMaXN0ID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5UZWFtc0xpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEudGVhbU5hbWUpXHJcbiAgICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0dXNlcnMoeyBjbGllbnRJZDogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCwgdGVhbXM6IHRlYW1zTGlzdCB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy51c2VyTGlzdCA9IHJlcy5kYXRhXHJcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd1c2VyTGlzdCcpPy5zZXRWYWx1ZShyZXMuZGF0YSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgndXNlckxpc3QnKT8uc2V0VmFsdWUoW10pXHJcbiAgICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0U3RvcmVzbGlzdCh7IGNsaWVudElkOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LCBjbHVzdGVyczogdGhpcy5ncm91cHMsIGNpdHk6IFtdIH0pLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IHJlcy5kYXRhLnN0b3Jlc0RhdGFcclxuICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZShyZXMuZGF0YS5zdG9yZXNEYXRhKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdmaWx0ZXJ0eXBlJyk/LnNldFZhbHVlKGV2ZW50KVxyXG4gIH1cclxuICBvbnpvbmVTZWxlY3QoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5yZW1vdmVRdWVyeVBhcmFtcygpXHJcbiAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnem9uZUxpc3QnKT8uc2V0VmFsdWUoZXZlbnQpXHJcbiAgfVxyXG4gIGFwcHJvdmVGaWx0ZXJDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy50cmF4U2VydmljZS5nZXRTdG9yZXNsaXN0KHsgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRmlsdGVycy5jbGllbnQsIGNsdXN0ZXJzOiB0aGlzLmdyb3VwcywgY2l0eTogW10gfSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gcmVzLmRhdGEuc3RvcmVzRGF0YVxyXG4gICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZShyZXMuZGF0YS5zdG9yZXNEYXRhKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgb25TdG9yZVNlbGVjdChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnJlbW92ZVF1ZXJ5UGFyYW1zKClcclxuICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd6b25lTGlzdCcpPy5zZXRWYWx1ZShbXSlcclxuICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZUxpc3QnKT8uc2V0VmFsdWUoZXZlbnQpXHJcblxyXG4gICAgdGhpcy5tb2JpbGV1c2FnZURhdGFMaXN0LmZvckVhY2goKHN0b3JlOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgaXNTdG9yZVNlbGVjdGVkID0gZXZlbnQuc29tZSgoc2VsZWN0ZWRTdG9yZTogYW55KSA9PiBzZWxlY3RlZFN0b3JlLnN0b3JlSWQgPT09IHN0b3JlLnN0b3JlSWQpO1xyXG4gICAgICBpZiAoaXNTdG9yZVNlbGVjdGVkKSB7XHJcbiAgICAgICAgc3RvcmUuY2hlY2tlZCA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc3RvcmUuY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0QWxsID0gdGhpcy5tb2JpbGV1c2FnZURhdGFMaXN0LmV2ZXJ5KChvYmo6IGFueSkgPT4gb2JqLmNoZWNrZWQpO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ID09PSAncXVldWVhbGVydCcpIHtcclxuICAgICAgdGhpcy5nZXR6b25ldGxpc3QoKVxyXG4gICAgfVxyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBvblVzZXJTZWxlY3QoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5yZW1vdmVRdWVyeVBhcmFtcygpXHJcbiAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgndXNlckxpc3QnKT8uc2V0VmFsdWUoZXZlbnQpXHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG5cclxuICBzdG9yZUxpc3Rkcm9wZG93blRhc2soKSB7XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldFN0b3Jlc2xpc3QoeyBjbGllbnRJZDogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCwgY2x1c3RlcnM6IHRoaXMuZ3JvdXBzLCBjaXR5OiBbXSB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgbGV0IHN0b3JlcyA9IHJlcy5kYXRhLnN0b3Jlc0RhdGEubWFwKChkYXRhOiBhbnkpID0+IGRhdGEuc3RvcmVJZClcclxuICAgICAgICAgIGxldCBvYmogPSB7XHJcbiAgICAgICAgICAgIFwiZnJvbURhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgICAgICAgIFwiQ2hlY2tsaXN0VHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGUsIC8vIFtcImN1c3RvbVwiLCBcIkFJXCJdXHJcbiAgICAgICAgICAgIFwiY2hlY2tsaXN0TmFtZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmNoZWNrbGlzdE5hbWUsXHJcbiAgICAgICAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgICAgICAgIFwic3RvcmVJZFwiOiBzdG9yZXMsXHJcbiAgICAgICAgICAgIFwiYW5zd2VyVHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmFuc3dlclR5cGUsIC8vW1wiZGVzY3JpcHRpdmVcIixcInllcy9ub1wiLFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIixcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIixcImltYWdlXCIsXCJ2aWRlb1wiLFwiZGVzY3JpcHRpdmVJbWFnZVwiLFwibXVsdGlwbGVJbWFnZVwiXVxyXG4gICAgICAgICAgICBcInZpZXdGbGFnXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudmlld0ZsYWcsLy9bdHJ1ZSwgZmFsc2VdXHJcbiAgICAgICAgICAgIFwidmlld1JlZG9cIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS52aWV3UmVkbywgLy9bdHJ1ZSwgZmFsc2VdXHJcbiAgICAgICAgICAgIFwiZmlsdGVyXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVyLFxyXG4gICAgICAgICAgICBcInF1ZXN0aW9uc1wiOiB0aGlzLnNlbGVjdGVkU2VjdGlvbi5sZW5ndGggPiAwICYmIHRoaXMuc2VsZWN0ZWRTZWN0aW9uWzBdLnF1ZXN0aW9ucy5sZW5ndGggPiAwID8gdGhpcy5zZWxlY3RlZFNlY3Rpb25bMF0ucXVlc3Rpb25zWzBdIDogXCJcIlxyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0UXVlc3Rpb25zKG9iaik/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlcyA9IHJlcy5kYXRhLnN0b3Jlc0RldGFpbHNcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gcmVzLmRhdGEuc3RvcmVzRGV0YWlsc1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXR0YXNrUUEoZmFsc2UpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldHRhc2tRQShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHVzZXJMaXN0ZHJvcGRvd25UYXNrKCkge1xyXG4gICAgbGV0IHRlYW1zTGlzdCA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuVGVhbXNMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnRlYW1OYW1lKVxyXG4gICAgdGhpcy50cmF4U2VydmljZS5nZXR1c2Vycyh7IGNsaWVudElkOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LCB0ZWFtczogdGVhbXNMaXN0IH0pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgndXNlckxpc3QnKT8uc2V0VmFsdWUocmVzLmRhdGEpXHJcbiAgICAgICAgICBsZXQgdXNlcnMgPSByZXMuZGF0YS5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS51c2VyRW1haWwpXHJcbiAgICAgICAgICBsZXQgb2JqID0ge1xyXG4gICAgICAgICAgICBcImZyb21EYXRlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZnJvbURhdGUsXHJcbiAgICAgICAgICAgIFwidG9EYXRlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudG9EYXRlLFxyXG4gICAgICAgICAgICBcIkNoZWNrbGlzdFR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja0xpc3RUeXBlLCAvLyBbXCJjdXN0b21cIiwgXCJBSVwiXVxyXG4gICAgICAgICAgICBcImNoZWNrbGlzdE5hbWVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja2xpc3ROYW1lLFxyXG4gICAgICAgICAgICBcImNoZWNrbGlzdElkXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkLFxyXG4gICAgICAgICAgICBcImZpbHRlcnR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlLFxyXG4gICAgICAgICAgICBcInN0b3JlSWRcIjogW10sXHJcbiAgICAgICAgICAgIFwidXNlckVtYWlsXCI6IHVzZXJzLFxyXG4gICAgICAgICAgICBcImFuc3dlclR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5hbnN3ZXJUeXBlLCAvL1tcImRlc2NyaXB0aXZlXCIsXCJ5ZXMvbm9cIixcIm11bHRpcGxlY2hvaWNlc2luZ2xlXCIsXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsXCJpbWFnZVwiLFwidmlkZW9cIixcImRlc2NyaXB0aXZlSW1hZ2VcIixcIm11bHRpcGxlSW1hZ2VcIl1cclxuICAgICAgICAgICAgXCJ2aWV3RmxhZ1wiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnZpZXdGbGFnLC8vW3RydWUsIGZhbHNlXVxyXG4gICAgICAgICAgICBcInZpZXdSZWRvXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudmlld1JlZG8sLy9bdHJ1ZSwgZmFsc2VdXHJcbiAgICAgICAgICAgIFwicXVlc3Rpb25zXCI6IHRoaXMuc2VsZWN0ZWRTZWN0aW9uLmxlbmd0aCA+IDAgJiYgdGhpcy5zZWxlY3RlZFNlY3Rpb25bMF0ucXVlc3Rpb25zLmxlbmd0aCA+IDAgPyB0aGlzLnNlbGVjdGVkU2VjdGlvblswXS5xdWVzdGlvbnNbMF0gOiBcIlwiLFxyXG4gICAgICAgICAgICBcImZpbHRlclwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcixcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0UXVlc3Rpb25zKG9iaik/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJMaXN0ID0gcmVzLmRhdGEuc3RvcmVzRGV0YWlsc1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3VzZXJMaXN0Jyk/LnNldFZhbHVlKHRoaXMudXNlckxpc3QpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc3RvcmVMaXN0Jyk/LnNldFZhbHVlKFtdKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbXVxyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXR0YXNrUUEoZmFsc2UpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldHRhc2tRQShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgdXNlckxpc3Rkcm9wZG93bigpIHtcclxuICAgIGxldCB0ZWFtc0xpc3QgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLlRlYW1zTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS50ZWFtTmFtZSlcclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0dXNlcnMoeyBjbGllbnRJZDogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCwgdGVhbXM6IHRlYW1zTGlzdCB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgbGV0IHVzZXJzID0gcmVzLmRhdGEubWFwKChkYXRhOiBhbnkpID0+IGRhdGEudXNlckVtYWlsKVxyXG4gICAgICAgICAgbGV0IG9iaiA9IHtcclxuICAgICAgICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICAgICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgICAgICAgXCJDaGVja2xpc3RUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tMaXN0VHlwZSwgLy8gW1wiY3VzdG9tXCIsIFwiQUlcIl1cclxuICAgICAgICAgICAgXCJjaGVja2xpc3ROYW1lXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tsaXN0TmFtZSxcclxuICAgICAgICAgICAgXCJjaGVja2xpc3RJZFwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZCxcclxuICAgICAgICAgICAgXCJmaWx0ZXJ0eXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVydHlwZSxcclxuICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFtdLFxyXG4gICAgICAgICAgICBcInVzZXJFbWFpbFwiOiB1c2VycyxcclxuICAgICAgICAgICAgXCJhbnN3ZXJUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuYW5zd2VyVHlwZSwgLy9bXCJkZXNjcmlwdGl2ZVwiLFwieWVzL25vXCIsXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLFwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiLFwiaW1hZ2VcIixcInZpZGVvXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsXCJtdWx0aXBsZUltYWdlXCJdXHJcbiAgICAgICAgICAgIFwidmlld0ZsYWdcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS52aWV3RmxhZywvL1t0cnVlLCBmYWxzZV1cclxuICAgICAgICAgICAgXCJ2aWV3UmVkb1wiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnZpZXdSZWRvLC8vW3RydWUsIGZhbHNlXVxyXG4gICAgICAgICAgICBcInF1ZXN0aW9uc1wiOiB0aGlzLnNlbGVjdGVkU2VjdGlvbi5sZW5ndGggPiAwICYmIHRoaXMuc2VsZWN0ZWRTZWN0aW9uWzBdLnF1ZXN0aW9ucy5sZW5ndGggPiAwID8gdGhpcy5zZWxlY3RlZFNlY3Rpb25bMF0ucXVlc3Rpb25zWzBdIDogXCJcIixcclxuICAgICAgICAgICAgXCJmaWx0ZXJcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXIsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldGNoZWNrbGlzdChvYmopPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy51c2VyTGlzdCA9IHJlcy5kYXRhLnN0b3Jlc0RldGFpbHNcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiLS0tLS1cIiwgdGhpcy51c2VyTGlzdClcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd1c2VyTGlzdCcpPy5zZXRWYWx1ZSh0aGlzLnVzZXJMaXN0KVxyXG4gICAgICAgICAgICAgICAgLy9oaWRlZCBiZWNveiB3aGlsZSBzZWxlY3Qgc2luZ2xlIHVzZXIgYW5kIGFwcGx5IGl0cyBhcHBsaWVkIGFsbCB1c2VyIHRvIHRoZSBsaXN0XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc3RvcmVMaXN0Jyk/LnNldFZhbHVlKFtdKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbXVxyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDaGVja2xpc3RRQShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2hlY2tsaXN0UUEoZmFsc2UpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHN0b3JlTGlzdGRyb3Bkb3duKCkge1xyXG4gICAgdGhpcy50cmF4U2VydmljZS5nZXRTdG9yZXNsaXN0KHsgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRmlsdGVycy5jbGllbnQsIGNsdXN0ZXJzOiB0aGlzLmdyb3VwcywgY2l0eTogW10gfSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIGxldCBzdG9yZXMgPSByZXMuZGF0YS5zdG9yZXNEYXRhLm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICAgICAgICBsZXQgb2JqID0ge1xyXG4gICAgICAgICAgICBcImZyb21EYXRlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZnJvbURhdGUsXHJcbiAgICAgICAgICAgIFwidG9EYXRlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudG9EYXRlLFxyXG4gICAgICAgICAgICBcIkNoZWNrbGlzdFR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja0xpc3RUeXBlLCAvLyBbXCJjdXN0b21cIiwgXCJBSVwiXVxyXG4gICAgICAgICAgICBcImNoZWNrbGlzdE5hbWVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja2xpc3ROYW1lLFxyXG4gICAgICAgICAgICBcImNoZWNrbGlzdElkXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkLFxyXG4gICAgICAgICAgICBcImZpbHRlcnR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlLFxyXG4gICAgICAgICAgICBcInN0b3JlSWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlID09PSAnQ2x1c3RlcnMnID8gc3RvcmVzIDogW10sXHJcbiAgICAgICAgICAgIFwidXNlckVtYWlsXCI6IFtdLFxyXG4gICAgICAgICAgICBcImFuc3dlclR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5hbnN3ZXJUeXBlLCAvL1tcImRlc2NyaXB0aXZlXCIsXCJ5ZXMvbm9cIixcIm11bHRpcGxlY2hvaWNlc2luZ2xlXCIsXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsXCJpbWFnZVwiLFwidmlkZW9cIixcImRlc2NyaXB0aXZlSW1hZ2VcIixcIm11bHRpcGxlSW1hZ2VcIl1cclxuICAgICAgICAgICAgXCJ2aWV3RmxhZ1wiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnZpZXdGbGFnLC8vW3RydWUsIGZhbHNlXVxyXG4gICAgICAgICAgICBcInZpZXdSZWRvXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudmlld1JlZG8sLy9bdHJ1ZSwgZmFsc2VdXHJcbiAgICAgICAgICAgIFwicXVlc3Rpb25zXCI6IHRoaXMuc2VsZWN0ZWRTZWN0aW9uLmxlbmd0aCA+IDAgJiYgdGhpcy5zZWxlY3RlZFNlY3Rpb25bMF0ucXVlc3Rpb25zLmxlbmd0aCA+IDAgPyB0aGlzLnNlbGVjdGVkU2VjdGlvblswXS5xdWVzdGlvbnNbMF0gOiBcIlwiLFxyXG4gICAgICAgICAgICBcImZpbHRlclwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcixcclxuICAgICAgICAgICAgXCJhcHByb3ZlRmlsdGVyXCI6IHRoaXMuYXBwcm92ZUZpbHRlclxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50cmF4U2VydmljZS5nZXRjaGVja2xpc3Qob2JqKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmVzID0gcmVzLmRhdGEuc3RvcmVzRGV0YWlsc1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzXHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc3RvcmVMaXN0Jyk/LnNldFZhbHVlKHRoaXMuc3RvcmVzKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDaGVja2xpc3RRQShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2hlY2tsaXN0UUEoZmFsc2UpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHNlbGVjdDphbnkgPSAnY3VzdG9tJ1xyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgaWYgKHRoaXMuaGVhZGVyRmlsdGVycy5jbGllbnQgPT09IFwiNDY0XCIpIHtcclxuICAgICAgdGhpcy5yZXF1ZXN0UGVybWlzc2lvbigpXHJcbiAgICB9XHJcbiAgICB0aGlzLm9mZnNldCA9IDFcclxuICAgIHRoaXMuY2hlY2tsaXN0TmFtZSA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tsaXN0TmFtZVxyXG4gICAgdGhpcy5jaGVja0xpc3REZXNjcmlwdGlvbiA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tMaXN0RGVzY3JpcHRpb25cclxuICAgIHRoaXMuc2hvd211bHRpID0gdHJ1ZTtcclxuICAgIHRoaXMuc2hvd3NpbmdsZSA9IGZhbHNlXHJcbiAgICB0aGlzLmFuc3dlckZpbHRlciA9IFtdXHJcbiAgICB0aGlzLnNlbGVjdGVkU3RvcmVzID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSBbXTtcclxuICAgIGlmICh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZCA9PT0gJ3N0b3Jlb3BlbmFuZGNsb3NlJykge1xyXG4gICAgICB0aGlzLnNlbGVjdCA9ICdzdG9yZW9wZW5hbmRjbG9zZSdcclxuICAgICAgdGhpcy5zdG9yZU9wZW5jbG9zZWxpc3QoZmFsc2UpXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuYm94aW1hZ2VDaGVja2xpc3QuaW5jbHVkZXModGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWRcclxuICAgICAgdGhpcy5xdWV1ZWFsZXJ0bGlzdChmYWxzZSlcclxuICAgIH0gZWxzZSBpZiAodGhpcy5pbWFnZUNoZWNrbGlzdC5pbmNsdWRlcyh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZCkpIHtcclxuICAgICAgdGhpcy5zZWxlY3QgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZDtcclxuICAgICAgdGhpcy5nZXRtb2JpbGVVc2FnZURhdGFsaXN0KGZhbHNlKVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLnZpZGVvQ2hlY2tsaXN0LmluY2x1ZGVzKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkKSkge1xyXG4gICAgICB0aGlzLnNlbGVjdCA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkO1xyXG4gICAgICB0aGlzLmN1c3RvbWVydW5hdHRlbmRlZGxpc3QoZmFsc2UpXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkID09PSAnY3VzdG9tZXJ0cmlhbCcpIHtcclxuICAgICAgdGhpcy5zZWxlY3QgPSAnY3VzdG9tZXJ0cmlhbCc7XHJcbiAgICAgIHRoaXMuZ2V0Y3VzdG9tZXJ0cmlhbGxpc3QoKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3QgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnID8gXCJjdXN0b21cIiA6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZTtcclxuICAgICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ2NoZWNrbGlzdCcpIHtcclxuICAgICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlID09PSAnQ2x1c3RlcnMnKSB7XHJcbiAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgndXNlckxpc3QnKT8uc2V0VmFsdWUoW10pXHJcbiAgICAgICAgICB0aGlzLnN0b3JlTGlzdGRyb3Bkb3duKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZUxpc3QnKT8uc2V0VmFsdWUoW10pXHJcbiAgICAgICAgICB0aGlzLnVzZXJMaXN0ZHJvcGRvd24oKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVydHlwZSA9PT0gJ0NsdXN0ZXJzJykge1xyXG4gICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3VzZXJMaXN0Jyk/LnNldFZhbHVlKFtdKVxyXG4gICAgICAgICAgdGhpcy5zdG9yZUxpc3Rkcm9wZG93blRhc2soKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZShbXSlcclxuICAgICAgICAgIHRoaXMudXNlckxpc3Rkcm9wZG93blRhc2soKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNob3c6IG51bWJlciA9IDA7XHJcbiAgYWNjb3JkaWFuKGluZGV4OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLnNob3cgPT0gaW5kZXgpIHtcclxuICAgICAgdGhpcy5zaG93ID0gLTE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNob3cgPSBpbmRleDtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0em9uZXRsaXN0KCkge1xyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBsZXQgem9uZSA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuem9uZUxpc3Q/Lmxlbmd0aCA/IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuem9uZUxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEudmFsdWUpIDogW11cclxuICAgIGxldCBvYmogPSB7XHJcbiAgICAgIFwiZnJvbURhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgIFwic3RvcmVJZFwiOiBzdG9yZXMsXHJcbiAgICAgIFwiY2xpZW50SWRcIjogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCxcclxuICAgICAgXCJDaGVja2xpc3RUeXBlXCI6IHRoaXMuc2VsZWN0LFxyXG4gICAgICBcIm9mZnNldFwiOiAwLFxyXG4gICAgICBcImxpbWl0XCI6IDEwMDAwLFxyXG4gICAgICBcInZpZXdJbWFnZVwiOiBmYWxzZSxcclxuICAgICAgXCJjYXRlZ29yeVwiOiB6b25lXHJcbiAgICB9XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLnF1ZXVlYWxlcnRsaXN0KG9iaik/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLm1vYmlsZXVzYWdlRGF0YUxpc3QgPSByZXMuZGF0YS5kYXRhXHJcbiAgICAgICAgICB0aGlzLm1vYmlsZXVzYWdlRGF0YUxpc3QuZm9yRWFjaCgoc3RvcmU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBzdG9yZS5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RBbGwgPSB0aGlzLm1vYmlsZXVzYWdlRGF0YUxpc3QuZXZlcnkoKG9iajogYW55KSA9PiBvYmouY2hlY2tlZCk7XHJcbiAgICAgICAgICB0aGlzLnpvbmVMaXN0ID0gcmVzLmRhdGEuem9uZXNcclxuICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd6b25lTGlzdCcpPy5zZXRWYWx1ZShyZXMuZGF0YS5zZWxlY3RlZHpvbmVzKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG4gIHF1ZXVlYWxlcnRsaXN0KHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICB0aGlzLnZpZXdsb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMudmlld25vRGF0YSA9IGZhbHNlO1xyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBsZXQgem9uZSA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuem9uZUxpc3Q/Lmxlbmd0aCA/IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuem9uZUxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEudmFsdWUpIDogW11cclxuICAgIGxldCBvYmogPSB7XHJcbiAgICAgIFwiZnJvbURhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgIFwic3RvcmVJZFwiOiBzdG9yZXMsXHJcbiAgICAgIFwiY2xpZW50SWRcIjogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCxcclxuICAgICAgXCJDaGVja2xpc3RUeXBlXCI6IHRoaXMuc2VsZWN0LFxyXG4gICAgICBcIm9mZnNldFwiOiAwLFxyXG4gICAgICBcImxpbWl0XCI6IDEwMDAwLFxyXG4gICAgICBcInZpZXdJbWFnZVwiOiBmYWxzZSxcclxuICAgICAgXCJjYXRlZ29yeVwiOiB6b25lXHJcbiAgICB9XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLnF1ZXVlYWxlcnRsaXN0KG9iaik/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLm1vYmlsZXVzYWdlRGF0YUxpc3QgPSByZXMuZGF0YS5kYXRhXHJcbiAgICAgICAgICB0aGlzLnpvbmVMaXN0ID0gcmVzLmRhdGEuem9uZXNcclxuICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd6b25lTGlzdCcpPy5zZXRWYWx1ZShyZXMuZGF0YS5zZWxlY3RlZHpvbmVzKVxyXG4gICAgICAgICAgdGhpcy5zdG9yZXMgPSBbXVxyXG4gICAgICAgICAgdGhpcy5tb2JpbGV1c2FnZURhdGFMaXN0LmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0cnVlXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVzLnB1c2goe1xyXG4gICAgICAgICAgICAgIHN0b3JlSWQ6IGVsZW1lbnQuc3RvcmVJZCxcclxuICAgICAgICAgICAgICBzdG9yZU5hbWU6IGVsZW1lbnQuc3RvcmVOYW1lXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICB0aGlzLnN0b3JlcyA9IHRoaXMuc3RvcmVzXHJcbiAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc3RvcmVMaXN0Jyk/LnNldFZhbHVlKHRoaXMuc3RvcmVzKVxyXG4gICAgICAgICAgdGhpcy5zZWxlY3RBbGwgPSB0aGlzLm1vYmlsZXVzYWdlRGF0YUxpc3QuZXZlcnkoKG9iajogYW55KSA9PiBvYmouY2hlY2tlZCk7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld25vRGF0YSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5xdWV1ZWFsZXJ0dmlldygpXHJcblxyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnZpZXdsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnZpZXdub0RhdGEgPSB0cnVlO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBzdG9yZU9wZW5jbG9zZWxpc3QodHlwZTogYW55KSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgIHRoaXMudmlld2xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy52aWV3bm9EYXRhID0gZmFsc2U7XHJcbiAgICBsZXQgc3RvcmVzID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zdG9yZUxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEuc3RvcmVJZClcclxuICAgIGxldCBvYmogPSB7XHJcbiAgICAgIFwiZnJvbURhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgIFwic3RvcmVJZFwiOiBzdG9yZXMsXHJcbiAgICAgIFwiY2xpZW50SWRcIjogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCxcclxuICAgICAgXCJDaGVja2xpc3RUeXBlXCI6IHRoaXMuc2VsZWN0LFxyXG4gICAgICBcIm9mZnNldFwiOiAwLFxyXG4gICAgICBcImxpbWl0XCI6IDEwMDAwLFxyXG4gICAgICBcInZpZXdJbWFnZVwiOiBmYWxzZSxcclxuICAgICAgXCJjYXRlZ29yeVwiOiB0aGlzLmNhdGVnb3J5XHJcbiAgICB9XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLnN0b3JlT3BlbmNsb3NlbGlzdChvYmopPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5tb2JpbGV1c2FnZURhdGFMaXN0ID0gcmVzLmRhdGEuc3RvcmVvcGVuYW5kY2xvc2VEYXRhXHJcbiAgICAgICAgICB0aGlzLnN0b3JlcyA9IFtdXHJcbiAgICAgICAgICB0aGlzLm1vYmlsZXVzYWdlRGF0YUxpc3QuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRydWVcclxuICAgICAgICAgICAgdGhpcy5zdG9yZXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgc3RvcmVJZDogZWxlbWVudC5zdG9yZUlkLFxyXG4gICAgICAgICAgICAgIHN0b3JlTmFtZTogZWxlbWVudC5zdG9yZU5hbWVcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIHRoaXMuc3RvcmVzID0gdGhpcy5zdG9yZXNcclxuICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZUxpc3QnKT8uc2V0VmFsdWUodGhpcy5zdG9yZXMpXHJcbiAgICAgICAgICB0aGlzLnNlbGVjdEFsbCA9IHRoaXMubW9iaWxldXNhZ2VEYXRhTGlzdC5ldmVyeSgob2JqOiBhbnkpID0+IG9iai5jaGVja2VkKTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZVxyXG4gICAgICAgICAgdGhpcy52aWV3bG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy52aWV3bm9EYXRhID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnN0b3JlT3BlbmNsb3NldmlldygpXHJcblxyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnZpZXdsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnZpZXdub0RhdGEgPSB0cnVlO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHF1ZXVlYWxlcnR2aWV3KCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICB0aGlzLmxpbWl0ID0gMVxyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBsZXQgem9uZXMgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnpvbmVMaXN0Py5sZW5ndGggPyB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnpvbmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnZhbHVlKSA6IFtdXHJcbiAgICBsZXQgb2JqID0ge1xyXG4gICAgICBcImZyb21EYXRlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZnJvbURhdGUsXHJcbiAgICAgIFwidG9EYXRlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudG9EYXRlLFxyXG4gICAgICBcInN0b3JlSWRcIjogc3RvcmVzLFxyXG4gICAgICBcImNsaWVudElkXCI6IHRoaXMuaGVhZGVyRmlsdGVycy5jbGllbnQsXHJcbiAgICAgIFwiQ2hlY2tsaXN0VHlwZVwiOiB0aGlzLnNlbGVjdCxcclxuICAgICAgXCJvZmZzZXRcIjogKHRoaXMub2Zmc2V0IC0gMSksXHJcbiAgICAgIFwibGltaXRcIjogdGhpcy5saW1pdCxcclxuICAgICAgXCJ2aWV3SW1hZ2VcIjogdHJ1ZSxcclxuICAgICAgXCJjYXRlZ29yeVwiOiB6b25lcyxcclxuICAgIH1cclxuICAgIHRoaXMudmlld2xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy52aWV3bm9EYXRhID0gZmFsc2U7XHJcbiAgICB0aGlzLmxpbWl0ID0gMVxyXG4gICAgdGhpcy5wYWdpbmF0aW9uU2l6ZXMgPSBbMV1cclxuICAgIHRoaXMudHJheFNlcnZpY2UucXVldWVhbGVydGxpc3Qob2JqKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMucXVldWVBbGVydFZpZXcgPSByZXMuZGF0YS5kYXRhXHJcbiAgICAgICAgICB0aGlzLnpvbmVMaXN0ID0gcmVzLmRhdGEuem9uZXNcclxuICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd6b25lTGlzdCcpPy5zZXRWYWx1ZShyZXMuZGF0YS5zZWxlY3RlZHpvbmVzKVxyXG4gICAgICAgICAgdGhpcy5xdWV1ZUFsZXJ0Vmlldy5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgZWxlbWVudC5kYXRlU3RyaW5nID0gZGF5anMoZWxlbWVudC5kYXRlU3RyaW5nKS5mb3JtYXQoJ0RELU1NLVlZWVknKVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnRvdGFsQ291bnQgPSByZXMuZGF0YS50b3RhbF9jb3VudFxyXG4gICAgICAgICAgdGhpcy52aWV3bG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy52aWV3bm9EYXRhID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy52aWV3bG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy52aWV3bm9EYXRhID0gdHJ1ZVxyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHN0b3JlT3BlbmNsb3NldmlldygpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgdGhpcy5saW1pdCA9IDEwXHJcbiAgICBsZXQgc3RvcmVzID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zdG9yZUxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEuc3RvcmVJZClcclxuICAgIGxldCBvYmogPSB7XHJcbiAgICAgIFwiZnJvbURhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgIFwic3RvcmVJZFwiOiBzdG9yZXMsXHJcbiAgICAgIFwiY2xpZW50SWRcIjogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCxcclxuICAgICAgXCJDaGVja2xpc3RUeXBlXCI6IHRoaXMuc2VsZWN0LFxyXG4gICAgICBcIm9mZnNldFwiOiAodGhpcy5vZmZzZXQgLSAxKSxcclxuICAgICAgXCJsaW1pdFwiOiB0aGlzLmxpbWl0LFxyXG4gICAgICBcInZpZXdJbWFnZVwiOiB0cnVlLFxyXG4gICAgICBcImNhdGVnb3J5XCI6IHRoaXMuY2F0ZWdvcnlcclxuXHJcbiAgICB9XHJcbiAgICB0aGlzLnZpZXdsb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMudmlld25vRGF0YSA9IGZhbHNlO1xyXG4gICAgdGhpcy5saW1pdCA9IDEwO1xyXG4gICAgdGhpcy5wYWdpbmF0aW9uU2l6ZXMgPSBbMTBdO1xyXG4gICAgdGhpcy50cmF4U2VydmljZS5zdG9yZU9wZW5jbG9zZWxpc3Qob2JqKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuc3RvcmVPcGVuY2xvc2VWaWV3ID0gcmVzLmRhdGEuc3RvcmVvcGVuYW5kY2xvc2VEYXRhXHJcblxyXG4gICAgICAgICAgdGhpcy5zdG9yZU9wZW5jbG9zZVZpZXcuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuZGF0ZVN0cmluZyA9IGRheWpzKGVsZW1lbnQuZGF0ZVN0cmluZykuZm9ybWF0KCdERC1NTS1ZWVlZJylcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy50b3RhbENvdW50ID0gcmVzLmRhdGEudG90YWxfY291bnRcclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld25vRGF0YSA9IGZhbHNlXHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld25vRGF0YSA9IHRydWVcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIGNvdmVyYWdlRGF0YShjb3ZlcmFnZTogYW55KSB7XHJcbiAgICBpZiAoY292ZXJhZ2UgPT09ICdzdG9yZScpIHtcclxuICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3VzZXJMaXN0Jyk/LnNldFZhbHVlKFtdKVxyXG4gICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnZmlsdGVydHlwZScpPy5zZXRWYWx1ZSgnQ2x1c3RlcnMnKVxyXG4gICAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldFN0b3Jlc2xpc3QoeyBjbGllbnRJZDogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCwgY2x1c3RlcnM6IHRoaXMuZ3JvdXBzLCBjaXR5OiBbXSB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSByZXMuZGF0YS5zdG9yZXNEYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlcyA9IHJlcy5kYXRhLnN0b3Jlc0RhdGFcclxuICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZSh0aGlzLnN0b3JlTGlzdClcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc3RvcmVzJyk/LnNldFZhbHVlKFtdKVxyXG4gICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnZmlsdGVydHlwZScpPy5zZXRWYWx1ZSgnVGVhbXMnKVxyXG4gICAgICBsZXQgdGVhbXNMaXN0ID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5UZWFtc0xpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEudGVhbU5hbWUpXHJcbiAgICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0dXNlcnMoeyBjbGllbnRJZDogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCwgdGVhbXM6IHRlYW1zTGlzdCB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy51c2VyTGlzdCA9IHJlcy5kYXRhO1xyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgndXNlckxpc3QnKT8uc2V0VmFsdWUodGhpcy51c2VyTGlzdClcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja2xpc3ROYW1lY2hhbmdlKGV2ZW50OiBhbnksIHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5yZW1vdmVRdWVyeVBhcmFtcygpXHJcbiAgICBpZiAoZXZlbnQuY2hlY2tMaXN0VHlwZSA9PT0gXCJBSVwiKSB7XHJcbiAgICAgIHRoaXMuc2hvd2ZsYWcgPSBmYWxzZVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2NoZWNrTGlzdFR5cGUnKT8uc2V0VmFsdWUoZXZlbnQuY2hlY2tMaXN0VHlwZSlcclxuICAgICAgdGhpcy5zaG93ZmxhZyA9IHRydWVcclxuICAgIH1cclxuICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzb3VyY2VDaGVja0xpc3RfaWQnKT8uc2V0VmFsdWUoZXZlbnQ/LnNvdXJjZUNoZWNrTGlzdF9pZClcclxuICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdjaGVja2xpc3ROYW1lJyk/LnNldFZhbHVlKGV2ZW50Py5jaGVja0xpc3ROYW1lKVxyXG4gICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2NoZWNrTGlzdERlc2NyaXB0aW9uJyk/LnNldFZhbHVlKGV2ZW50Py5jaGVja0xpc3REZXNjcmlwdGlvbilcclxuXHJcbiAgICBpZiAoZXZlbnQgJiYgZXZlbnQuY292ZXJhZ2UgPT09ICdzdG9yZScpIHtcclxuICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3VzZXJMaXN0Jyk/LnNldFZhbHVlKFtdKVxyXG4gICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnZmlsdGVydHlwZScpPy5zZXRWYWx1ZSgnQ2x1c3RlcnMnKVxyXG4gICAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldFN0b3Jlc2xpc3QoeyBjbGllbnRJZDogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCwgY2x1c3RlcnM6IHRoaXMuZ3JvdXBzLCBjaXR5OiBbXSB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ID09PSAndW5pZm9ybWRldGVjdGlvbicpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtNzkxXCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMDYxXCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTEyMjNcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE0MjBcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTEyNVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTE3OVwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xMDQwXCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMTMwXCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTEwMDJcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDEwNjlcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTAyMVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTE0MFwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xMDNcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE2MFwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xMzUyXCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMjU0XCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTEzNTRcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE0NDRcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTQwNVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTU2N1wiXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ID09PSAnc3RhZmZsZWZ0aW50aGVtaWRkbGUnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gW3tcclxuICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS03OTFcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMDYxXCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTExMDlcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMjAwXCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE1OTRcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxNzIxXCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE2NjZcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxNzQ3XCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE4NDNcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMTgxXCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE4NjZcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMTA1XCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE5MDdcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMTY4XCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE5NjNcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMjI2XCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE5NzlcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMzQ3XCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE5ODVcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMDUwXCJcclxuICAgICAgICAgICAgfV1cclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3QgPT09ICdtb2JpbGV1c2FnZWRldGVjdGlvbicpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTI2MVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTIyNFwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xNDI3XCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxNjI4XCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE0ODhcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDEyOTBcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTY3MVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTc1M1wiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xOTEwXCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMjc0XCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE5MTRcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIyNjNcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTc5OVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjEyNFwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xOTc1XCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMTg0XCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE5ODVcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIwNTBcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMjA2MFwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjE5MVwiXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmICh0aGlzLnNlbGVjdCAgPT09J3VuaWZvcm1kZXRlY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gW1xyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTEyMzlcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDEwNDZcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtNDBcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE1MVwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xMDg0XCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMTYxXCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTEyNVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTIxXCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE0MDVcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE1NjdcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTQzMFwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTMwN1wiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xODc2XCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMjU4XCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE5OTNcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE4MDlcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMjAzM1wiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjA4MFwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0yMDMxXCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMDI0XCJcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICAgIH0gZWxzZSBpZih0aGlzLnNlbGVjdCA9PT0gJ2V5ZXRlc3QnKXtcclxuICAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9ICBbXHJcbiAge1wic3RvcmVJZFwiOiBcIjExLTEwNTVcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1Q5NDhcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMTQzXCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUNDkyXCJcclxufSxcclxue1wic3RvcmVJZFwiOiBcIjExLTk5MlwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiU1Q0MThcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtNjNcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1Q0MjNcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMTM0OVwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE1MzZcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMTM4OVwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDEzOTdcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMjEyXCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUNTlcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMTc2N1wiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIwNzhcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMTk3N1wiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIxMTZcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMjA4N1wiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIyNDRcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMjE2M1wiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIzNTlcIlxyXG59LFxyXG5dXHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ID09PSAncmVtb3Rlb3B0b21ldHJpc3QnKSB7XHJcbiAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gW1xyXG4gIHtcInN0b3JlSWRcIjogXCIxMS05NjhcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMDY1XCJcclxufSxcclxuIFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMTIxNlwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDEyNDVcIlxyXG59LFxyXG4gXHJcbntcInN0b3JlSWRcIjogXCIxMS02OTdcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1Q0ODFcIlxyXG59LFxyXG4gXHJcbntcInN0b3JlSWRcIjogXCIxMS0xODFcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyOTNcIlxyXG59LFxyXG4gXHJcbntcInN0b3JlSWRcIjogXCIxMS0yMjdcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1QzNDhcIlxyXG59LFxyXG4gXHJcbntcInN0b3JlSWRcIjogXCIxMS0xMzYwXCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTI3MFwiXHJcbn0sXHJcbiBcclxue1wic3RvcmVJZFwiOiBcIjExLTE3NDhcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxOTk2XCJcclxufSxcclxuIFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMjAzMVwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIwMjRcIlxyXG59LFxyXG4gXHJcbntcInN0b3JlSWRcIjogXCIxMS0yMTE1XCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjEwMVwiXHJcbn0sXHJcbiBcclxue1wic3RvcmVJZFwiOiBcIjExLTIxMzNcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyNDczXCJcclxufSxcclxuIFxyXG5dXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuc2VsZWN0ID09PSAnc3RvcmVoeWdpZW5lbW9uaXRvcmluZycpIHtcclxuICAgICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gW1xyXG4gIHtcInN0b3JlSWRcIjogXCIxMS00NjdcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1Q2NzlcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMTYxOFwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE4MDNcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMTY5MlwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE3NTZcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMTkwMlwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIwODdcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMjAwMFwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIzNjhcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMjA2OVwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIzODRcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMjE1OVwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDI0MzVcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMjIxNFwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDI0OTZcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMjIzM1wiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDI2MDRcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMjI3MlwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDI2MjlcIlxyXG59LFxyXG5dIFxyXG4gICAgICAgICAgfSBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IHJlcy5kYXRhLnN0b3Jlc0RhdGE7XHJcblxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyB0aGlzLnN0b3JlTGlzdCA9IHJlcy5kYXRhLnN0b3Jlc0RhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVzID0gcmVzLmRhdGEuc3RvcmVzRGF0YVxyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc3RvcmVMaXN0Jyk/LnNldFZhbHVlKHRoaXMuc3RvcmVMaXN0KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZXMnKT8uc2V0VmFsdWUoW10pXHJcbiAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdmaWx0ZXJ0eXBlJyk/LnNldFZhbHVlKCdUZWFtcycpXHJcbiAgICAgIGxldCB0ZWFtc0xpc3QgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLlRlYW1zTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS50ZWFtTmFtZSlcclxuICAgICAgdGhpcy50cmF4U2VydmljZS5nZXR1c2Vycyh7IGNsaWVudElkOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LCB0ZWFtczogdGVhbXNMaXN0IH0pLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnVzZXJMaXN0ID0gcmVzLmRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd1c2VyTGlzdCcpPy5zZXRWYWx1ZSh0aGlzLnVzZXJMaXN0KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgY3VzdG9tZXJ1bmF0dGVuZGVkbGlzdCh0eXBlOiBhbnkpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgdGhpcy52aWV3bG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnZpZXdub0RhdGEgPSBmYWxzZVxyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBsZXQgb2JqID0ge1xyXG4gICAgICBcImRhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LFxyXG4gICAgICBcIkNoZWNrbGlzdFR5cGVcIjogdGhpcy5zZWxlY3QsXHJcbiAgICAgIFwidmlld0ltYWdlXCI6IGZhbHNlLFxyXG4gICAgICBcImxpbWl0XCI6IDEwLFxyXG4gICAgICBcIm9mZnNldFwiOiAwLFxyXG4gICAgICBcImNhdGVnb3J5XCI6IHRoaXMuY2F0ZWdvcnlcclxuICAgIH1cclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0Y3VzdG9tZXJ1bmF0dGVuZGVkbGlzdChvYmopPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5tb2JpbGV1c2FnZURhdGFMaXN0ID0gcmVzLmRhdGEuZGF0YTtcclxuICAgICAgICAgIHRoaXMuc3RvcmVzID0gW107XHJcbiAgICAgICAgICB0aGlzLm1vYmlsZXVzYWdlRGF0YUxpc3QuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRydWVcclxuICAgICAgICAgICAgdGhpcy5zdG9yZXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgc3RvcmVJZDogZWxlbWVudC5zdG9yZUlkLFxyXG4gICAgICAgICAgICAgIHN0b3JlTmFtZTogZWxlbWVudC5zdG9yZU5hbWVcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy50b3RhbENvdW50ID0gcmVzLmRhdGEudG90YWxfY291bnRcclxuICAgICAgICAgIHRoaXMuc2VsZWN0QWxsID0gdGhpcy5tb2JpbGV1c2FnZURhdGFMaXN0LmV2ZXJ5KChvYmo6IGFueSkgPT4gb2JqLmNoZWNrZWQpO1xyXG4gICAgICAgICAgdGhpcy5zdG9yZXMgPSB0aGlzLnN0b3Jlc1xyXG4gICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZSh0aGlzLnN0b3JlcylcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZVxyXG4gICAgICAgICAgdGhpcy5nZXRjdXN0b21lcnVuYXR0ZW5kZWR2aWV3KClcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnZpZXdsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnZpZXdub0RhdGEgPSB0cnVlXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgc2VsZWN0ZWRFeHBvcnQgPSBmYWxzZVxyXG4gIHNlbGVjdGVkUXVlc3Rpb24oZXZlbnQ6IGFueSwgc2VjdGlvbjogYW55LCBRdWVzdGlvbjogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgaWYgKHRoaXMudGVtcHNlbGVjdGVkU2VjdGlvbi5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgIGxldCBxdWVzdGlvbnM6IGFueSA9IFtdXHJcbiAgICAgICAgbGV0IGFuc3dlcjogYW55ID0gW11cclxuICAgICAgICBhbnN3ZXIucHVzaChRdWVzdGlvbi5hbnN3ZXJUeXBlKVxyXG4gICAgICAgIHF1ZXN0aW9ucy5wdXNoKFF1ZXN0aW9uLnFuYW1lLnJlcGxhY2UoL1xcbi9nLCBcIiBcIikpXHJcbiAgICAgICAgbGV0IHJlc3BvbnNlID0ge1xyXG4gICAgICAgICAgc2VjdGlvbk5hbWU6IHNlY3Rpb24uc2VjdGlvbk5hbWUsXHJcbiAgICAgICAgICBxdWVzdGlvbnM6IHF1ZXN0aW9ucyxcclxuICAgICAgICAgIGFuc3dlclR5cGU6IGFuc3dlclxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnRlbXBzZWxlY3RlZFNlY3Rpb24ucHVzaChyZXNwb25zZSlcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsZXQgc2VjdGlvbkV4aXN0cyA9IHRoaXMudGVtcHNlbGVjdGVkU2VjdGlvbi5maWx0ZXIoKGRhdGE6IGFueSkgPT4gZGF0YS5zZWN0aW9uTmFtZSA9PT0gc2VjdGlvbi5zZWN0aW9uTmFtZSlcclxuICAgICAgICBpZiAoc2VjdGlvbkV4aXN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLnRlbXBzZWxlY3RlZFNlY3Rpb24ubWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKGRhdGEuc2VjdGlvbk5hbWUgPT09IHNlY3Rpb24uc2VjdGlvbk5hbWUpIHtcclxuICAgICAgICAgICAgICBkYXRhLnF1ZXN0aW9ucy5wdXNoKFF1ZXN0aW9uLnFuYW1lLnJlcGxhY2UoL1xcbi9nLCBcIiBcIikpXHJcbiAgICAgICAgICAgICAgZGF0YS5hbnN3ZXJUeXBlLnB1c2goUXVlc3Rpb24uYW5zd2VyVHlwZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IHF1ZXN0aW9uczogYW55ID0gW11cclxuICAgICAgICAgIGxldCBhbnN3ZXI6IGFueSA9IFtdXHJcblxyXG5cclxuICAgICAgICAgIGFuc3dlci5wdXNoKFF1ZXN0aW9uLmFuc3dlclR5cGUpXHJcblxyXG4gICAgICAgICAgcXVlc3Rpb25zLnB1c2goUXVlc3Rpb24ucW5hbWUucmVwbGFjZSgvXFxuL2csIFwiIFwiKSlcclxuICAgICAgICAgIGxldCByZXNwb25zZSA9IHtcclxuICAgICAgICAgICAgc2VjdGlvbk5hbWU6IHNlY3Rpb24uc2VjdGlvbk5hbWUsXHJcbiAgICAgICAgICAgIHF1ZXN0aW9uczogcXVlc3Rpb25zLFxyXG4gICAgICAgICAgICBhbnN3ZXJUeXBlOiBhbnN3ZXJcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudGVtcHNlbGVjdGVkU2VjdGlvbi5wdXNoKHJlc3BvbnNlKVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jaGVja2xpc3REYXRhLm1hcCgoc2VjOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoc2VjLnNlY3Rpb25OYW1lID09IHNlY3Rpb24uc2VjdGlvbk5hbWUpIHtcclxuICAgICAgICAgIHNlYy5xdWVzdGlvbnMubWFwKChxdWVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHF1ZXMucW5hbWUgPT09IFF1ZXN0aW9uLnFuYW1lLnJlcGxhY2UoL1xcbi9nLCBcIiBcIikpIHtcclxuICAgICAgICAgICAgICBxdWVzLmNoZWNrZWQgPSB0cnVlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gICAgfSBlbHNlIHtcclxuXHJcbiAgICAgIHRoaXMudGVtcHNlbGVjdGVkU2VjdGlvbi5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhLnNlY3Rpb25OYW1lID09IHNlY3Rpb24uc2VjdGlvbk5hbWUpIHtcclxuICAgICAgICAgIGRhdGEucXVlc3Rpb25zID0gZGF0YS5xdWVzdGlvbnMuZmlsdGVyKChlbGU6IGFueSkgPT4gZWxlICE9IFF1ZXN0aW9uLnFuYW1lLnJlcGxhY2UoL1xcbi9nLCBcIiBcIikpXHJcbiAgICAgICAgICBkYXRhLmFuc3dlclR5cGUgPSBkYXRhLmFuc3dlclR5cGUuZmlsdGVyKChlbGU6IGFueSkgPT4gZWxlICE9IFF1ZXN0aW9uLmFuc3dlclR5cGUpXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICAgdGhpcy50ZW1wc2VsZWN0ZWRTZWN0aW9uID0gdGhpcy50ZW1wc2VsZWN0ZWRTZWN0aW9uLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZS5xdWVzdGlvbnMubGVuZ3RoID4gMClcclxuICAgIH1cclxuXHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZEV4cG9ydCA9IHRoaXMudGVtcHNlbGVjdGVkU2VjdGlvbi5sZW5ndGggPiAwO1xyXG4gIH1cclxuICBnZXRjdXN0b21lcnRyaWFsbGlzdCgpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgdGhpcy52aWV3bG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnZpZXdub0RhdGEgPSBmYWxzZTtcclxuICAgIHRoaXMubW9iaWxldXNhZ2VEYXRhTGlzdCA9IFt7IHN0b3JlSWQ6IFwiNTktMTQ3XCIsIHN0b3JlTmFtZTogXCJCaXJrZW5zdG9jayBEdWJhaSBIaWxsc1wiLCBkZXRlY3Rpb25zOiBcIjIwXCIgfV07XHJcbiAgICB0aGlzLm1vYmlsZXVzYWdlRGF0YUxpc3QuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRydWVcclxuICAgICAgdGhpcy5zdG9yZXMucHVzaCh7XHJcbiAgICAgICAgc3RvcmVJZDogZWxlbWVudC5zdG9yZUlkLFxyXG4gICAgICAgIHN0b3JlTmFtZTogZWxlbWVudC5zdG9yZU5hbWVcclxuICAgICAgfSlcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0QWxsID0gdGhpcy5tb2JpbGV1c2FnZURhdGFMaXN0LmV2ZXJ5KChvYmo6IGFueSkgPT4gb2JqLmNoZWNrZWQpO1xyXG4gICAgdGhpcy5zdG9yZXMgPSB0aGlzLnN0b3Jlc1xyXG4gICAgdGhpcy5tb2JpbGV1c2FnZURhdGEgPVxyXG4gICAgICBbe1xyXG4gICAgICAgIHN0b3JlTmFtZTogXCJCaXJrZW5zdG9jayBEdWJhaSBIaWxsc1wiLFxyXG4gICAgICAgIGltYWdlVXJsOiBbXHJcbiAgICAgICAgICBcInRyYWlsLzU5LTE0Ny9iMWM1YjE1YzAxMzNkZWMwYzQ1NjQwZDkyM2ZkYTIyMV8xMF8wOV81OV8wMDBfMjRfMDFfMjAyNV9mYWxzZS5naWZcIixcclxuICAgICAgICAgIFwidHJhaWwvNTktMTQ3L2IxYzViMTVjMDEzM2RlYzBjNDU2NDBkOTIzZmRhMjIxXzEwXzA5XzU5XzAwMF8yNF8wMV8yMDI1X2ZhbHNlLmdpZlwiLFxyXG4gICAgICAgICAgXCJ0cmFpbC81OS0xNDcvYjFjNWIxNWMwMTMzZGVjMGM0NTY0MGQ5MjNmZGEyMjFfMTBfNDBfMzJfMDAwXzI0XzAxXzIwMjVfZmFsc2UuZ2lmXCIsXHJcbiAgICAgICAgICBcInRyYWlsLzU5LTE0Ny9iMWM1YjE1YzAxMzNkZWMwYzQ1NjQwZDkyM2ZkYTIyMV8xMF81MF80M18wMDBfMjRfMDFfMjAyNV9mYWxzZS5naWZcIixcclxuICAgICAgICAgIFwidHJhaWwvNTktMTQ3L2IxYzViMTVjMDEzM2RlYzBjNDU2NDBkOTIzZmRhMjIxXzExXzAwXzU0XzAwMF8yNF8wMV8yMDI1X2ZhbHNlLmdpZlwiLFxyXG4gICAgICAgICAgXCJ0cmFpbC81OS0xNDcvYjFjNWIxNWMwMTMzZGVjMGM0NTY0MGQ5MjNmZGEyMjFfMTFfMTFfMDVfMDAwXzI0XzAxXzIwMjVfZmFsc2UuZ2lmXCIsXHJcbiAgICAgICAgICBcInRyYWlsLzU5LTE0Ny9iMWM1YjE1YzAxMzNkZWMwYzQ1NjQwZDkyM2ZkYTIyMV8xMV8yMV8xNl8wMDBfMjRfMDFfMjAyNV9mYWxzZS5naWZcIixcclxuICAgICAgICAgIFwidHJhaWwvNTktMTQ3L2IxYzViMTVjMDEzM2RlYzBjNDU2NDBkOTIzZmRhMjIxXzExXzIxXzE5XzAwMF8yNV8wMV8yMDI1XzE3Mzc3ODkxODUuZ2lmXCIsXHJcbiAgICAgICAgICBcInRyYWlsLzU5LTE0Ny9iMWM1YjE1YzAxMzNkZWMwYzQ1NjQwZDkyM2ZkYTIyMV8xMl80Ml80NF8wMDBfMjRfMDFfMjAyNV9mYWxzZS5naWZcIixcclxuICAgICAgICAgIFwidHJhaWwvNTktMTQ3L2IxYzViMTVjMDEzM2RlYzBjNDU2NDBkOTIzZmRhMjIxXzEyXzQyXzUwXzAwMF8yNV8wMV8yMDI1XzE3Mzc3OTQzNDkuZ2lmXCIsXHJcbiAgICAgICAgICBcInRyYWlsLzU5LTE0Ny9iMWM1YjE1YzAxMzNkZWMwYzQ1NjQwZDkyM2ZkYTIyMV8xM18wM18wN18wMDBfMjRfMDFfMjAyNV9mYWxzZS5naWZcIixcclxuICAgICAgICAgIFwidHJhaWwvNTktMTQ3L2IxYzViMTVjMDEzM2RlYzBjNDU2NDBkOTIzZmRhMjIxXzEzXzIzXzI4XzAwMF8yNF8wMV8yMDI1XzE3Mzc3MTAyODMuZ2lmXCIsXHJcbiAgICAgICAgICBcInRyYWlsLzU5LTE0Ny9iMWM1YjE1YzAxMzNkZWMwYzQ1NjQwZDkyM2ZkYTIyMV8xM18zM180N18wMDBfMjVfMDFfMjAyNV8xNzM3Nzk3NTg4LmdpZlwiLFxyXG4gICAgICAgICAgXCJ0cmFpbC81OS0xNDcvYjFjNWIxNWMwMTMzZGVjMGM0NTY0MGQ5MjNmZGEyMjFfMTRfNDRfNTdfMDAwXzI0XzAxXzIwMjVfZmFsc2UuZ2lmXCIsXHJcbiAgICAgICAgICBcInRyYWlsLzU5LTE0Ny9iMWM1YjE1YzAxMzNkZWMwYzQ1NjQwZDkyM2ZkYTIyMV8xOF81OV80MF8wMDBfMjRfMDFfMjAyNV8xNzM3NzMwMjg2LmdpZlwiLFxyXG4gICAgICAgICAgXCJ0cmFpbC81OS0xNDcvYjFjNWIxNWMwMTMzZGVjMGM0NTY0MGQ5MjNmZGEyMjFfMjBfMTBfNTlfMDAwXzI0XzAxXzIwMjVfMTczNzczNDc3My5naWZcIixcclxuICAgICAgICAgIFwidHJhaWwvNTktMTQ3L2IxYzViMTVjMDEzM2RlYzBjNDU2NDBkOTIzZmRhMjIxXzIwXzIxXzEwXzAwMF8yNF8wMV8yMDI1XzE3Mzc3MzUyNDEuZ2lmXCIsXHJcbiAgICAgICAgICBcInRyYWlsLzU5LTE0Ny9iMWM1YjE1YzAxMzNkZWMwYzQ1NjQwZDkyM2ZkYTIyMV8yMV8xMl8wN18wMDBfMjRfMDFfMjAyNV8xNzM3NzM4MjMzLmdpZlwiLFxyXG4gICAgICAgICAgXCJ0cmFpbC81OS0xNDcvYjFjNWIxNWMwMTMzZGVjMGM0NTY0MGQ5MjNmZGEyMjFfMjFfNDJfNDFfMDAwXzI0XzAxXzIwMjVfMTczNzc0MDUwOS5naWZcIixcclxuICAgICAgICAgIFwidHJhaWwvNTktMTQ3L2IxYzViMTVjMDEzM2RlYzBjNDU2NDBkOTIzZmRhMjIxXzIyXzIzXzI3XzAwMF8yNF8wMV8yMDI1XzE3Mzc3NDI0MTIuZ2lmXCIsXHJcbiAgICAgICAgXVxyXG4gICAgICB9XVxyXG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLm5vRGF0YSA9IGZhbHNlXHJcbiAgICB0aGlzLnZpZXdsb2FkaW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLnZpZXdub0RhdGEgPSBmYWxzZVxyXG4gICAgdGhpcy50b3RhbENvdW50ID0gMVxyXG4gIH1cclxuICBnZXRtb2JpbGVVc2FnZURhdGFsaXN0KHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICB0aGlzLnZpZXdsb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMudmlld25vRGF0YSA9IGZhbHNlO1xyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBsZXQgb2JqID0ge1xyXG4gICAgICBcImRhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LFxyXG4gICAgICBcIkNoZWNrbGlzdFR5cGVcIjogdGhpcy5zZWxlY3QsXHJcbiAgICAgIFwidmlld0ltYWdlXCI6IGZhbHNlLFxyXG4gICAgICBcIm9mZnNldFwiOiAodGhpcy5vZmZzZXQgLSAxKSxcclxuICAgICAgXCJsaW1pdFwiOiB0aGlzLmxpbWl0LFxyXG4gICAgICBcImNhdGVnb3J5XCI6IHRoaXMuY2F0ZWdvcnlcclxuICAgIH1cclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0TW9iVXNhZ2VsaXN0KG9iaik/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLm1vYmlsZXVzYWdlRGF0YUxpc3QgPSByZXMuZGF0YS5kYXRhO1xyXG4gICAgICAgICAgdGhpcy5zdG9yZXMgPSBbXVxyXG4gICAgICAgICAgdGhpcy5tb2JpbGV1c2FnZURhdGFMaXN0LmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0cnVlXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVzLnB1c2goe1xyXG4gICAgICAgICAgICAgIHN0b3JlSWQ6IGVsZW1lbnQuc3RvcmVJZCxcclxuICAgICAgICAgICAgICBzdG9yZU5hbWU6IGVsZW1lbnQuc3RvcmVOYW1lXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMudG90YWxDb3VudCA9IHJlcy5kYXRhLnRvdGFsX2NvdW50XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdEFsbCA9IHRoaXMubW9iaWxldXNhZ2VEYXRhTGlzdC5ldmVyeSgob2JqOiBhbnkpID0+IG9iai5jaGVja2VkKTtcclxuICAgICAgICAgIHRoaXMuc3RvcmVzID0gdGhpcy5zdG9yZXNcclxuICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZUxpc3QnKT8uc2V0VmFsdWUodGhpcy5zdG9yZXMpXHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMuZ2V0bW9iaWxlVXNhZ2VEYXRhdmlldygpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy52aWV3bm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZVxyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIG9ucmVzZXQoKSB7XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldFN0b3Jlc2xpc3QoeyBjbGllbnRJZDogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCwgY2x1c3RlcnM6IHRoaXMuZ3JvdXBzLCBjaXR5OiBbXSB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSByZXMuZGF0YS5zdG9yZXNEYXRhO1xyXG4gICAgICAgICAgdGhpcy5zdG9yZXMgPSByZXMuZGF0YS5zdG9yZXNEYXRhXHJcbiAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc3RvcmVMaXN0Jyk/LnNldFZhbHVlKHRoaXMuc3RvcmVMaXN0KVxyXG4gICAgICAgICAgdGhpcy5vZmZzZXQgPSAxXHJcbiAgICAgICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQgPT09ICdzdG9yZW9wZW5hbmRjbG9zZScpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3QgPSAnc3RvcmVvcGVuYW5kY2xvc2UnXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVPcGVuY2xvc2VsaXN0KGZhbHNlKVxyXG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmJveGltYWdlQ2hlY2tsaXN0LmluY2x1ZGVzKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkKSkge1xyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnem9uZUxpc3QnKT8uc2V0VmFsdWUoW10pXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWRcclxuICAgICAgICAgICAgdGhpcy5xdWV1ZWFsZXJ0bGlzdChmYWxzZSlcclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5pbWFnZUNoZWNrbGlzdC5pbmNsdWRlcyh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZCkpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3QgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZDtcclxuICAgICAgICAgICAgdGhpcy5nZXRtb2JpbGVVc2FnZURhdGFsaXN0KGZhbHNlKVxyXG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnZpZGVvQ2hlY2tsaXN0LmluY2x1ZGVzKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkKSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdCA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkO1xyXG4gICAgICAgICAgICB0aGlzLmN1c3RvbWVydW5hdHRlbmRlZGxpc3QoZmFsc2UpXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdCA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ2NoZWNrbGlzdCcgPyBcImN1c3RvbVwiIDogXCJcIjtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVydHlwZSA9PT0gJ0NsdXN0ZXJzJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ZHJvcGRvd24oKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJMaXN0ZHJvcGRvd24oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbXTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICB9XHJcbiAgb252aWV3KCkge1xyXG4gICAgdGhpcy5vZmZzZXQgPSAxO1xyXG4gICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkID09PSAnc3RvcmVvcGVuYW5kY2xvc2UnKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ID0gJ3N0b3Jlb3BlbmFuZGNsb3NlJ1xyXG4gICAgICB0aGlzLnN0b3JlT3BlbmNsb3NldmlldygpXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuYm94aW1hZ2VDaGVja2xpc3QuaW5jbHVkZXModGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWRcclxuICAgICAgdGhpcy5xdWV1ZWFsZXJ0dmlldygpXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW1hZ2VDaGVja2xpc3QuaW5jbHVkZXModGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQ7XHJcbiAgICAgIHRoaXMuZ2V0bW9iaWxlVXNhZ2VEYXRhdmlldygpXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlkZW9DaGVja2xpc3QuaW5jbHVkZXModGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQ7XHJcbiAgICAgIHRoaXMuZ2V0Y3VzdG9tZXJ1bmF0dGVuZGVkdmlldygpXHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldGN1c3RvbWVydW5hdHRlbmRlZHZpZXcoKSB7XHJcblxyXG4gICAgdGhpcy52aWV3bG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnZpZXdub0RhdGEgPSBmYWxzZTtcclxuICAgIHRoaXMubGltaXQgPSAxXHJcbiAgICB0aGlzLnBhZ2luYXRpb25TaXplcyA9IFsxXVxyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBsZXQgb2JqID0ge1xyXG4gICAgICBcImRhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LFxyXG4gICAgICBcIkNoZWNrbGlzdFR5cGVcIjogdGhpcy5zZWxlY3QsXHJcbiAgICAgIFwidmlld0ltYWdlXCI6IHRydWUsXHJcbiAgICAgIFwib2Zmc2V0XCI6ICh0aGlzLm9mZnNldCAtIDEpLFxyXG4gICAgICBcImxpbWl0XCI6IHRoaXMubGltaXQsXHJcbiAgICAgIFwiY2F0ZWdvcnlcIjogdGhpcy5jYXRlZ29yeVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0Y3VzdG9tZXJ1bmF0dGVuZGVkbGlzdChvYmopPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5jdXN0b21lcnVuYXR0ZW5kZWREYXRhID0gcmVzLmRhdGEuZGF0YVxyXG4gICAgICAgICAgdGhpcy52aWV3bG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy52aWV3bm9EYXRhID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMudG90YWxDb3VudCA9IHJlcy5kYXRhLnRvdGFsX2NvdW50XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld25vRGF0YSA9IHRydWU7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgZ2V0bW9iaWxlVXNhZ2VEYXRhdmlldygpIHtcclxuICAgIHRoaXMudmlld2xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy52aWV3bm9EYXRhID0gZmFsc2U7XHJcbiAgICB0aGlzLmxpbWl0ID0gMTBcclxuICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzEwXVxyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBsZXQgb2JqID0ge1xyXG4gICAgICBcImZyb21EYXRlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZnJvbURhdGUsXHJcbiAgICAgIFwidG9EYXRlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudG9EYXRlLFxyXG4gICAgICBcImRhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LFxyXG4gICAgICBcIkNoZWNrbGlzdFR5cGVcIjogdGhpcy5zZWxlY3QsXHJcbiAgICAgIFwidmlld0ltYWdlXCI6IHRydWUsXHJcbiAgICAgIFwib2Zmc2V0XCI6ICh0aGlzLm9mZnNldCAtIDEpLFxyXG4gICAgICBcImxpbWl0XCI6IHRoaXMubGltaXQsXHJcbiAgICAgIFwiY2F0ZWdvcnlcIjogdGhpcy5jYXRlZ29yeVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0TW9iVXNhZ2VsaXN0KG9iaik/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLm1vYmlsZXVzYWdlRGF0YSA9IHJlcy5kYXRhLmRhdGFcclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld25vRGF0YSA9IGZhbHNlXHJcbiAgICAgICAgICB0aGlzLnRvdGFsQ291bnQgPSByZXMuZGF0YS50b3RhbF9jb3VudFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnZpZXdsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnZpZXdub0RhdGEgPSB0cnVlXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgZ2V0ZmlsdGVyQ291bnQoKSB7XHJcbiAgICBsZXQgc3RvcmVzID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zdG9yZUxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEuc3RvcmVJZClcclxuICAgIGxldCB1c2VycyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudXNlckxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEudXNlckVtYWlsKVxyXG4gICAgbGV0IHBheWxvYWQgPSB7XHJcbiAgICAgIFwiZnJvbURhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgIFwiZmlsdGVydHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcnR5cGUsXHJcbiAgICAgIFwic3RvcmVJZFwiOiBzdG9yZXMsXHJcbiAgICAgIFwidXNlckVtYWlsXCI6IHVzZXJzLFxyXG4gICAgICBcImFuc3dlclR5cGVcIjogdGhpcy5zZWxlY3RlZFNlY3Rpb25bMF0uYW5zd2VyVHlwZVswXSxcclxuICAgICAgXCJjaGVja2xpc3RJZFwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZCxcclxuICAgICAgXCJDaGVja2xpc3RUeXBlXCI6IFwiY3VzdG9tXCIsXHJcbiAgICAgIFwicXVlc3Rpb25zXCI6IHRoaXMuc2VsZWN0ZWRTZWN0aW9uWzBdLnF1ZXN0aW9uc1swXVxyXG4gICAgfVxyXG4gICAgdGhpcy50cmF4U2VydmljZS5nZXRBbnN3ZXJjb3VudChwYXlsb2FkKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuYW5zd2VyRmlsdGVyID0gcmVzLmRhdGEuYW5zd2Vyc0NvdW50XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuYW5zd2VyRmlsdGVyID0gW11cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICBjcmVhdGVNdWx0aXBsZVRhc2sodHlwZTogYW55KSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkU3RvcmVzLCB0aGlzLnNlbGVjdGVkVXNlcnMpXHJcblxyXG4gICAgY29uc3QgaXNDbHVzdGVyID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlID09PSAnQ2x1c3RlcnMnO1xyXG4gICAgY29uc3QgaXNSZWRvID0gdHlwZSA9PT0gJ3JlZG8nO1xyXG5cclxuICAgIGNvbnN0IGZpbHRlckZuID0gKGVsZTogYW55KSA9PlxyXG4gICAgICAoaXNSZWRvID8gIWVsZS5yZWRvICYmIHRoaXMuY2hlY2t0b2RheURhdGUoZWxlLmRhdGVfc3RyaW5nKSA6IGVsZS50YXNrSWQgPT09IG51bGwpO1xyXG5cclxuICAgIGlmIChpc0NsdXN0ZXIpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFN0b3JlcyA9IHRoaXMuc2VsZWN0ZWRTdG9yZXMuZmlsdGVyKGZpbHRlckZuKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IHRoaXMuc2VsZWN0ZWRVc2Vycy5maWx0ZXIoZmlsdGVyRm4pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRTdG9yZXMsIHRoaXMuc2VsZWN0ZWRVc2VycylcclxuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihCdWxrY3JlYXRpb25tb2RlbENvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgc2l6ZTogXCJsZ1wiLFxyXG4gICAgICB3aW5kb3dDbGFzczogJ215LW93bi1zdHlsZXMnLFxyXG4gICAgICBiYWNrZHJvcDogJ3N0YXRpYycsXHJcbiAgICAgIGtleWJvYXJkOiBmYWxzZVxyXG5cclxuICAgIH0pO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UudHlwZSA9IHR5cGVcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmZpbHRlcnR5cGUgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcnR5cGVcclxuICAgIGlmICh0aGlzLmlucHV0RGF0YVRhc2subXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlICYmIHRoaXMuaW5wdXREYXRhVGFzay5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuaW5wdXREYXRhVGFzay5xdWVzdGlvblJlZmVyZW5jZUltYWdlID0gdGhpcy5pbnB1dERhdGFUYXNrLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5pbWFnZVVSTCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5pbnB1dERhdGFUYXNrLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgJiYgdGhpcy5pbnB1dERhdGFUYXNrLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgIT0gJycgJiYgdGhpcy5pbnB1dERhdGFUYXNrLnJlZmVyZW5jZUltYWdlICE9IG51bGwpIHtcclxuICAgICAgICB0aGlzLmlucHV0RGF0YVRhc2sucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSA9IFt0aGlzLmlucHV0RGF0YVRhc2sucXVlc3Rpb25SZWZlcmVuY2VJbWFnZT8ucmVmZXJlbmNlSW1hZ2VdXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuaW5wdXREYXRhVGFzaz8uYW5zd2Vycy5mb3JFYWNoKChhbnM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoIVsneWVzL25vJywgJ211bHRpcGxlY2hvaWNlc2luZ2xlJywgJ211bHRpcGxlY2hvaWNlbXVsdGlwbGUnXS5pbmNsdWRlcyh0aGlzLmlucHV0RGF0YVRhc2suYW5zd2VyVHlwZSkpIHtcclxuICAgICAgICBpZiAoYW5zPy5tdWx0aVJlZmVyZW5jZUltYWdlICYmIGFucz8ubXVsdGlSZWZlcmVuY2VJbWFnZS5sZW5ndGgpIHtcclxuICAgICAgICAgIGFucy5yZWZlcmVuY2VJbWFnZSA9IGFucy5tdWx0aVJlZmVyZW5jZUltYWdlLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLmltYWdlVVJMKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKGFucz8ucmVmZXJlbmNlSW1hZ2UgJiYgYW5zPy5yZWZlcmVuY2VJbWFnZSAhPSAnJyAmJiBhbnM/LnJlZmVyZW5jZUltYWdlICE9IG51bGwpIHtcclxuICAgICAgICAgICAgYW5zLnJlZmVyZW5jZUltYWdlID0gW2Fucz8ucmVmZXJlbmNlSW1hZ2VdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8vIGlmIChhbnM/LnJlZmVyZW5jZUltYWdlICYmIGFucz8ucmVmZXJlbmNlSW1hZ2UgIT0gJycgJiYgYW5zPy5yZWZlcmVuY2VJbWFnZSAhPSBudWxsKSB7XHJcbiAgICAgIC8vICAgYW5zLnJlZmVyZW5jZUltYWdlID0gW2Fucz8ucmVmZXJlbmNlSW1hZ2VdXHJcbiAgICAgIC8vIH1cclxuICAgIH0pO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UudGFza0RldGFpbHMgPSB7XHJcbiAgICAgIHNlY3Rpb25zOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgXCJpZFwiOiBcIlwiLFxyXG4gICAgICAgICAgXCJuYW1lXCI6IFwiXCIsXHJcbiAgICAgICAgICBcInF1ZXN0aW9uc1wiOiBbdGhpcy5pbnB1dERhdGFUYXNrXVxyXG4gICAgICAgIH1cclxuICAgICAgXVxyXG5cclxuICAgIH07XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5zb3VyY2VDaGVja0xpc3RfaWQgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZFxyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UucGF5bG9hZCA9IHtcclxuICAgICAgY292ZXJhZ2U6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVydHlwZSA9PT0gJ1RlYW1zJyA/IFwidXNlclwiIDogXCJzdG9yZVwiLFxyXG4gICAgICBzZWxlY3RlZFN0b3JlczogdGhpcy5zZWxlY3RlZFN0b3JlcyxcclxuICAgICAgc2VsZWN0ZWRVc2VyczogdGhpcy5zZWxlY3RlZFVzZXJzLFxyXG4gICAgICBvcGVyYXRpb250eXBlOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGUsXHJcbiAgICAgIGlucHV0RGF0YTogdGhpcy5pbnB1dERhdGFUYXNrLFxyXG4gICAgICBzZWN0aW9uSW5mbzogdGhpcy5vdGhlclRhc2tEYXRhLnNlY3Rpb25JbmZvLFxyXG4gICAgICByZWZJbWFnZTogdGhpcy5yZWZJbWFnZSxcclxuICAgICAgY2hlY2tsaXN0TmFtZTogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja2xpc3ROYW1lLFxyXG4gICAgfTtcclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRTdG9yZXMubGVuZ3RoKVxyXG4gICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIiYmJiYmJiZcIiwgcmVzdWx0KVxyXG4gICAgICBpZiAocmVzdWx0ID09PSAnc3VibWl0Jykge1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiKioqKioqKioqKioqXCIpXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN0b3JlcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IFtdO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0QWxsVGFzayA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5zaG93c2luZ2xlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaG93bXVsdGkgPSB0cnVlO1xyXG4gICAgICAgIGlmICh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnKSB7XHJcbiAgICAgICAgICB0aGlzLmdldENoZWNrbGlzdFFBKGZhbHNlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5nZXRUYXNrUUEodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIHNlbGVjdGVkQWxsVGFzayhldmVudDogYW55LCBjaGVja2xpc3Q6IGFueSwgZGF0YTogYW55LCBjaGVja2xpc3RJbmZvOiBhbnksIHNlY3Rpb25JbmZvOiBhbnkpIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKGRhdGEpXHJcbiAgICAvLyBjb25zb2xlLmxvZyhcIiBzZWxlY3RlZEFsbFRhc2sgMTEgPT5cIilcclxuICAgIGxldCBhbnN3ZXI6IGFueSA9IFtdXHJcbiAgICBhbnN3ZXIgPSBkYXRhLnVzZXJBbnN3ZXIubWFwKChkYXRhOiBhbnkpID0+IGRhdGEuYW5zd2VyKVxyXG4gICAgLy8gY29uc29sZS5sb2coYW5zd2VyKVxyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0QWxsVGFzayA9IGV2ZW50LnRhcmdldC5jaGVja2VkO1xyXG5cclxuXHJcbiAgICAgIHRoaXMuaW5wdXREYXRhVGFzayA9IGRhdGFcclxuICAgICAgdGhpcy5yZWZJbWFnZSA9IFsuLi50aGlzLnJlZkltYWdlLCAuLi5hbnN3ZXJdXHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMucmVmSW1hZ2UpXHJcbiAgICAgIHRoaXMub3RoZXJUYXNrRGF0YSA9IHtcclxuICAgICAgICBzZWN0aW9uSW5mbzogc2VjdGlvbkluZm8sXHJcbiAgICAgIH1cclxuICAgICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICAgIGxldCB1c2VycyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudXNlckxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEudXNlckVtYWlsKVxyXG4gICAgICB0aGlzLnZpZXdDaGVja2xpc3Rzb3B0aW9ucyA9IHtcclxuICAgICAgICBcImZyb21EYXRlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZnJvbURhdGUsXHJcbiAgICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgICAgXCJDaGVja2xpc3RUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ3Rhc2snID8gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlIDogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja0xpc3RUeXBlLCAvLyBbXCJjaGVja2xpc3RcIiwgXCJ0YXNrXCJdXHJcbiAgICAgICAgXCJjaGVja2xpc3ROYW1lXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tsaXN0TmFtZSxcclxuICAgICAgICBcImZpbHRlcnR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlLFxyXG4gICAgICAgIFwic3RvcmVJZFwiOiBzdG9yZXMsXHJcbiAgICAgICAgXCJ1c2VyRW1haWxcIjogdXNlcnMsXHJcbiAgICAgICAgXCJhbnN3ZXJUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuYW5zd2VyVHlwZSwgLy9bXCJkZXNjcmlwdGl2ZVwiLFwieWVzL25vXCIsXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLFwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiLFwiaW1hZ2VcIixcInZpZGVvXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsXCJtdWx0aXBsZUltYWdlXCJdICAgICAgXHJcbiAgICAgICAgXCJvZmZzZXRcIjogMCxcclxuICAgICAgICBcImxpbWl0XCI6IDEwMDAwLFxyXG4gICAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgICAgXCJzb3VyY2VDaGVja0xpc3RfaWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgICAgXCJ2aWV3RmxhZ1wiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnZpZXdGbGFnLFxyXG4gICAgICAgIFwidmlld1JlZG9cIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS52aWV3UmVkbywvL1t0cnVlLCBmYWxzZV1cclxuICAgICAgICBcInF1ZXN0aW9uc1wiOiB0aGlzLnNlbGVjdGVkU2VjdGlvbixcclxuICAgICAgICBcImZpbHRlclwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcixcclxuICAgICAgICBcImFwcHJvdmVGaWx0ZXJcIjogdGhpcy5hcHByb3ZlRmlsdGVyLFxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldGFsbGNoZWNrbGlzdCh0aGlzLnZpZXdDaGVja2xpc3Rzb3B0aW9ucyk/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvdGFscmVjb3JkY291bnQgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzLmxlbmd0aFxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmVjb3JkQ291bnQgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzLmxlbmd0aFxyXG4gICAgICAgICAgICByZXMuZGF0YS5zdG9yZXNEZXRhaWxzLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKCFlbGUuYXBwcm92YWxTdGF0dXMpIHtcclxuICAgICAgICAgICAgICAgIGlmICghZWxlLnJlZG8gfHwgIWVsZS50YXNrSWQpIHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVydHlwZSA9PT0gJ0NsdXN0ZXJzJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTdG9yZXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdG9yZU5hbWU6IGVsZS5zdG9yZU5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdG9yZUlkOiBlbGUuc3RvcmVfaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICB1c2VyRW1haWw6IGVsZS51c2VyRW1haWwsXHJcbiAgICAgICAgICAgICAgICAgICAgICBjaGVja2xpc3RJZDogZWxlLmNoZWNrbGlzdElkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbl9pZDogZWxlLnNlY3Rpb25faWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICB1bmlxdWVObzogZGF0YS51bmlxdWVObyxcclxuICAgICAgICAgICAgICAgICAgICAgIHVzZXJOYW1lOiBlbGUudXNlck5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICBkYXRlX3N0cmluZzogZWxlLmRhdGVfc3RyaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgdGFza0lkOiBlbGUudGFza0lkID8gZWxlLnRhc2tJZCA6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICByZWRvOiBlbGUucmVkb1xyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFVzZXJzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgdXNlckVtYWlsOiBlbGUudXNlckVtYWlsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgY2hlY2tsaXN0SWQ6IGVsZS5jaGVja2xpc3RJZCxcclxuICAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb25faWQ6IGVsZS5zZWN0aW9uX2lkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgdW5pcXVlTm86IGRhdGEudW5pcXVlTm8sXHJcbiAgICAgICAgICAgICAgICAgICAgICB1c2VyTmFtZTogZWxlLnVzZXJOYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zdHJpbmc6IGVsZS5kYXRlX3N0cmluZyxcclxuICAgICAgICAgICAgICAgICAgICAgIHRhc2tJZDogZWxlLnRhc2tJZCA/IGVsZS50YXNrSWQgOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgcmVkbzogZWxlLnJlZG9cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICB0aGlzLnZpZXdDaGVja2xpc3RzRGF0YS5jaGVja2xpc3RBbnN3ZXJzLm1hcCgoZGV0YWlsczogYW55KSA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLnN0b3Jlc0RldGFpbHMuZmlsdGVyKChlbGU6IGFueSkgPT4gZWxlLnVzZXJFbWFpbCA9PT0gZGV0YWlscy5zdG9yZVByb2ZpbGU/LnVzZXJFbWFpbCkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICBkZXRhaWxzLnF1ZXN0aW9uQW5zd2VyWzBdLnF1ZXN0aW9uc1swXS5jaGVja2VkID0gdHJ1ZVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG5cclxuXHJcblxyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0QWxsVGFzayA9IGZhbHNlXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRSZWNvcmRDb3VudCA9IDBcclxuICAgICAgdGhpcy52aWV3Q2hlY2tsaXN0c0RhdGEuY2hlY2tsaXN0QW5zd2Vycy5tYXAoKGRldGFpbHM6IGFueSkgPT4ge1xyXG4gICAgICAgIGRldGFpbHMucXVlc3Rpb25BbnN3ZXJbMF0ucXVlc3Rpb25zWzBdLmNoZWNrZWQgPSBmYWxzZVxyXG4gICAgICB9KVxyXG4gICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkU3RvcmVzKVxyXG4gICAgICB0aGlzLnJlZkltYWdlID0gdGhpcy5yZWZJbWFnZS5maWx0ZXIoKGRhdGEpID0+IGRhdGEuYW5zd2VyKVxyXG4gICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlID09PSAnQ2x1c3RlcnMnKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN0b3JlcyA9IFtdXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gW11cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG5cclxuXHJcbiAgc2VsZWN0bXVsdGlUYXNrKGV2ZW50OiBhbnksIGNoZWNrbGlzdDogYW55LCBkYXRhOiBhbnksIGNoZWNrbGlzdEluZm86IGFueSwgc2VjdGlvbkluZm86IGFueSkge1xyXG4gICAgLy8gY29uc29sZS5sb2coc2VjdGlvbkluZm8pXHJcbiAgICAvLyBjb25zb2xlLmxvZyhcIiBzZWxlY3RtdWx0aVRhc2sgMTEgPT5cIilcclxuICAgIGxldCBhbnN3ZXI6IGFueSA9IFtdXHJcbiAgICBhbnN3ZXIgPSBkYXRhLnVzZXJBbnN3ZXIubWFwKChkYXRhOiBhbnkpID0+IGRhdGEuYW5zd2VyKVxyXG4gICAgLy8gY29uc29sZS5sb2coYW5zd2VyKVxyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuaW5wdXREYXRhVGFzayA9IGRhdGFcclxuICAgICAgdGhpcy5yZWZJbWFnZSA9IFsuLi50aGlzLnJlZkltYWdlLCAuLi5hbnN3ZXJdXHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMucmVmSW1hZ2UpXHJcbiAgICAgIHRoaXMub3RoZXJUYXNrRGF0YSA9IHtcclxuICAgICAgICBzZWN0aW9uSW5mbzogc2VjdGlvbkluZm8sXHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVydHlwZSA9PT0gJ0NsdXN0ZXJzJykge1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGNoZWNrbGlzdC5jaGVja2xpc3RJbmZvKVxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTdG9yZXMucHVzaCh7XHJcbiAgICAgICAgICBzZWN0aW9uX2lkOiBzZWN0aW9uSW5mby5zZWN0aW9uX2lkLFxyXG4gICAgICAgICAgc3RvcmVJZDogY2hlY2tsaXN0LnN0b3JlUHJvZmlsZS5zdG9yZV9pZCxcclxuICAgICAgICAgIHN0b3JlTmFtZTogY2hlY2tsaXN0LnN0b3JlUHJvZmlsZS5zdG9yZU5hbWUsXHJcbiAgICAgICAgICBjaGVja2xpc3RJZDogY2hlY2tsaXN0SW5mby5jaGVja2xpc3RJZCxcclxuICAgICAgICAgIHVzZXJFbWFpbDogY2hlY2tsaXN0LmNoZWNrbGlzdEluZm8udXNlckVtYWlsLFxyXG4gICAgICAgICAgdW5pcXVlTm86IGRhdGEudW5pcXVlTm8sXHJcbiAgICAgICAgICB0YXNrSWQ6IGRhdGEudGFza0lkID8gZGF0YS50YXNrSWQgOiBudWxsLFxyXG4gICAgICAgICAgcmVkbzogZGF0YS5yZWRvLFxyXG4gICAgICAgICAgZGF0ZV9zdHJpbmc6IGRheWpzKGNoZWNrbGlzdC5jaGVja2xpc3RJbmZvLmRhdGUsIFwiREQgTU1NIFlZWVlcIikuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFVzZXJzLnB1c2goe1xyXG4gICAgICAgICAgc2VjdGlvbl9pZDogc2VjdGlvbkluZm8uc2VjdGlvbl9pZCxcclxuICAgICAgICAgIHVzZXJFbWFpbDogY2hlY2tsaXN0LmNoZWNrbGlzdEluZm8udXNlckVtYWlsLFxyXG4gICAgICAgICAgdXNlck5hbWU6IGNoZWNrbGlzdC5jaGVja2xpc3RJbmZvLnN1Ym1pdHRlZEJ5LFxyXG4gICAgICAgICAgY2hlY2tsaXN0SWQ6IGNoZWNrbGlzdEluZm8uY2hlY2tsaXN0SWQsXHJcbiAgICAgICAgICB1bmlxdWVObzogZGF0YS51bmlxdWVObyxcclxuICAgICAgICAgIHRhc2tJZDogZGF0YS50YXNrSWQgPyBkYXRhLnRhc2tJZCA6IG51bGwsXHJcbiAgICAgICAgICByZWRvOiBkYXRhLnJlZG8sXHJcbiAgICAgICAgICBkYXRlX3N0cmluZzogZGF5anMoY2hlY2tsaXN0LmNoZWNrbGlzdEluZm8uZGF0ZSwgXCJERCBNTU0gWVlZWVwiKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpXHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG5cclxuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlZkltYWdlID0gdGhpcy5yZWZJbWFnZS5maWx0ZXIoKGRhdGEpID0+IGRhdGEuYW5zd2VyKVxyXG4gICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlID09PSAnQ2x1c3RlcnMnKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN0b3JlcyA9IHRoaXMuc2VsZWN0ZWRTdG9yZXMuZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEuY2hlY2tsaXN0SWQgIT0gY2hlY2tsaXN0SW5mby5jaGVja2xpc3RJZClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSB0aGlzLnNlbGVjdGVkVXNlcnMuZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEuY2hlY2tsaXN0SWQgIT0gY2hlY2tsaXN0SW5mby5jaGVja2xpc3RJZClcclxuICAgICAgfVxyXG4gICAgICAvLyBjb25zb2xlLmxvZyhjaGVja2xpc3RJbmZvLmNoZWNrbGlzdElkKVxyXG4gICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkU3RvcmVzKVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZFJlY29yZENvdW50ID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlID09PSAnQ2x1c3RlcnMnXHJcbiAgICAgID8gdGhpcy5zZWxlY3RlZFN0b3Jlcy5sZW5ndGhcclxuICAgICAgOiB0aGlzLnNlbGVjdGVkVXNlcnMubGVuZ3RoO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0QWxsVGFzayA9IHRoaXMudG90YWxyZWNvcmRjb3VudCA9PT0gdGhpcy5zZWxlY3RlZFJlY29yZENvdW50O1xyXG4gICAgLy8gY29uc29sZS5sb2codGhpcy5zZWxlY3RlZFJlY29yZENvdW50LCB0aGlzLnRvdGFscmVjb3JkY291bnQpXHJcbiAgfVxyXG4gIHNlbGVjdHNpbmdsZXF1ZXN0aW9uKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFN0b3JlcyA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gW107XHJcbiAgICB0aGlzLnRvdGFscmVjb3JkY291bnQgPSAwO1xyXG4gICAgdGhpcy5zZWxlY3RlZFJlY29yZENvdW50ID0gMFxyXG4gICAgdGhpcy5zZWxlY3RBbGxUYXNrID0gZmFsc2VcclxuICAgIHRoaXMuc2VsZWN0ZWRTZWN0aW9uID0gdGhpcy50ZW1wc2VsZWN0ZWRTZWN0aW9uXHJcbiAgICBpZiAodGhpcy5xdWVzdGlvbnNjb3VudCh0aGlzLnNlbGVjdGVkU2VjdGlvbikgPT0gMCB8fCB0aGlzLnF1ZXN0aW9uc2NvdW50KHRoaXMuc2VsZWN0ZWRTZWN0aW9uKSA+IDEpIHtcclxuICAgICAgdGhpcy5zaG93c2luZ2xlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2hvd211bHRpID0gdHJ1ZVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLnF1ZXN0aW9uc2NvdW50KHRoaXMuc2VsZWN0ZWRTZWN0aW9uKSA9PSAxKSB7XHJcbiAgICAgIHRoaXMuc2hvd3NpbmdsZSA9IHRydWU7XHJcbiAgICAgIHRoaXMuc2hvd211bHRpID0gZmFsc2VcclxuXHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkU2VjdGlvblswXS5hbnN3ZXJUeXBlWzBdID09PSBcInllcy9ub1wiIHx8IHRoaXMuc2VsZWN0ZWRTZWN0aW9uWzBdLmFuc3dlclR5cGVbMF0gPT09IFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIiB8fCB0aGlzLnNlbGVjdGVkU2VjdGlvblswXS5hbnN3ZXJUeXBlWzBdID09PSBcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIikge1xyXG4gICAgICAgIHRoaXMuc2hvd2ZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5nZXRmaWx0ZXJDb3VudCgpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zaG93ZmlsdGVyID0gZmFsc2VcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIHRoaXMub2Zmc2V0ID0gMTtcclxuICAgIHRoaXMudmlld2xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy52aWV3bm9EYXRhID0gZmFsc2U7XHJcbiAgICBsZXQgc3RvcmVzID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zdG9yZUxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEuc3RvcmVJZClcclxuICAgIGxldCB1c2VycyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudXNlckxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEudXNlckVtYWlsKVxyXG4gICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ2NoZWNrbGlzdCcpIHtcclxuICAgICAgbGV0IG9iaiA9IHtcclxuICAgICAgICBcImZyb21EYXRlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZnJvbURhdGUsXHJcbiAgICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgICAgXCJDaGVja2xpc3RUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tMaXN0VHlwZSwgLy8gW1wiY3VzdG9tXCIsIFwiQUlcIl1cclxuICAgICAgICBcImNoZWNrbGlzdE5hbWVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja2xpc3ROYW1lLFxyXG4gICAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgICAgXCJmaWx0ZXJ0eXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVydHlwZSxcclxuICAgICAgICBcInN0b3JlSWRcIjogc3RvcmVzLFxyXG4gICAgICAgIFwidXNlckVtYWlsXCI6IHVzZXJzLFxyXG4gICAgICAgIFwiYW5zd2VyVHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmFuc3dlclR5cGUsIC8vW1wiZGVzY3JpcHRpdmVcIixcInllcy9ub1wiLFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIixcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIixcImltYWdlXCIsXCJ2aWRlb1wiLFwiZGVzY3JpcHRpdmVJbWFnZVwiLFwibXVsdGlwbGVJbWFnZVwiXVxyXG4gICAgICAgIFwidmlld0ZsYWdcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS52aWV3RmxhZywgLy9bdHJ1ZSwgZmFsc2VdXHJcbiAgICAgICAgXCJ2aWV3UmVkb1wiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnZpZXdSZWRvLCAvL1t0cnVlLCBmYWxzZV1cclxuICAgICAgICBcImZpbHRlclwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcixcclxuICAgICAgICBcInF1ZXN0aW9uc1wiOiB0aGlzLnNlbGVjdGVkU2VjdGlvbi5sZW5ndGggPiAwICYmIHRoaXMuc2VsZWN0ZWRTZWN0aW9uWzBdLnF1ZXN0aW9ucy5sZW5ndGggPiAwID8gdGhpcy5zZWxlY3RlZFNlY3Rpb25bMF0ucXVlc3Rpb25zWzBdIDogXCJcIixcclxuICAgICAgICBcImFwcHJvdmVGaWx0ZXJcIjogdGhpcy5hcHByb3ZlRmlsdGVyXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50cmF4U2VydmljZS5nZXRjaGVja2xpc3Qob2JqKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuY2hlY2tsaXN0RGF0YSA9IHJlcz8uZGF0YS5jaGVja2xpc3RRdWVzdGlvbnM7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlID09PSAnQ2x1c3RlcnMnKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZShyZXM/LmRhdGE/LnN0b3Jlc0RldGFpbHMpXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3VzZXJMaXN0Jyk/LnNldFZhbHVlKHJlcz8uZGF0YT8uc3RvcmVzRGV0YWlscylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnZpZXdDaGVja2xpc3RzKFwiYWxsXCIsIFwiYWxsXCIpXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrbGlzdERhdGEgPSBbXTtcclxuICAgICAgICAgICAgdGhpcy52aWV3Q2hlY2tsaXN0c0RhdGEgPSBbXTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy52aWV3bG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnZpZXdub0RhdGEgPSB0cnVlO1xyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgb2JqID0ge1xyXG4gICAgICAgIFwiZnJvbURhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgICBcIkNoZWNrbGlzdFR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlLCAvLyBbXCJjdXN0b21cIiwgXCJBSVwiXVxyXG4gICAgICAgIFwiY2hlY2tsaXN0TmFtZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmNoZWNrbGlzdE5hbWUsXHJcbiAgICAgICAgXCJjaGVja2xpc3RJZFwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZCxcclxuICAgICAgICBcImZpbHRlcnR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlLFxyXG4gICAgICAgIFwic3RvcmVJZFwiOiBzdG9yZXMsXHJcbiAgICAgICAgXCJ1c2VyRW1haWxcIjogdXNlcnMsXHJcbiAgICAgICAgXCJhbnN3ZXJUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuYW5zd2VyVHlwZSwgLy9bXCJkZXNjcmlwdGl2ZVwiLFwieWVzL25vXCIsXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLFwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiLFwiaW1hZ2VcIixcInZpZGVvXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsXCJtdWx0aXBsZUltYWdlXCJdXHJcbiAgICAgICAgXCJ2aWV3RmxhZ1wiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnZpZXdGbGFnLC8vW3RydWUsIGZhbHNlXVxyXG4gICAgICAgIFwidmlld1JlZG9cIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS52aWV3UmVkbywgLy9bdHJ1ZSwgZmFsc2VdXHJcbiAgICAgICAgXCJmaWx0ZXJcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXIsXHJcbiAgICAgICAgXCJxdWVzdGlvbnNcIjogdGhpcy5zZWxlY3RlZFNlY3Rpb24ubGVuZ3RoID4gMCAmJiB0aGlzLnNlbGVjdGVkU2VjdGlvblswXS5xdWVzdGlvbnMubGVuZ3RoID4gMCA/IHRoaXMuc2VsZWN0ZWRTZWN0aW9uWzBdLnF1ZXN0aW9uc1swXSA6IFwiXCJcclxuXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50cmF4U2VydmljZS5nZXRRdWVzdGlvbnMob2JqKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuY2hlY2tsaXN0RGF0YSA9IHJlcz8uZGF0YS5jaGVja2xpc3RRdWVzdGlvbnM7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlID09PSAnQ2x1c3RlcnMnKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZShyZXM/LmRhdGE/LnN0b3Jlc0RldGFpbHMpXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3VzZXJMaXN0Jyk/LnNldFZhbHVlKHJlcz8uZGF0YT8uc3RvcmVzRGV0YWlscylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnZpZXdUYXNrTGlzdChcImFsbFwiLCBcImFsbFwiKVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja2xpc3REYXRhID0gW107XHJcbiAgICAgICAgICAgIHRoaXMudmlld0NoZWNrbGlzdHNEYXRhID0gW107XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy52aWV3bm9EYXRhID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuICBhcHBvdmVDaGVja2xpc3QoKSB7XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQXBwcm92YWxQb3B1cENvbXBvbmVudCwgeyBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ21kJywgfSk7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS50eXBlID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuY2hlY2tMaXN0TmFtZSA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tsaXN0TmFtZTtcclxuICAgIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgaWYgKHJlc3VsdCA9PSAnc3VibWl0Jykge1xyXG5cclxuICAgICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlID09PSAnQ2x1c3RlcnMnKSB7XHJcbiAgICAgICAgICBsZXQgc3RvcmVzID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zdG9yZUxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEuc3RvcmVJZClcclxuICAgICAgICAgIGlmIChzdG9yZXMubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChcIlBsZWFzZSBzZWxlY3QgYXRsZWFzdCBvbmUgc3RvcmVcIilcclxuICAgICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGxldCB1c2VyID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS51c2VyTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS51c2VyRW1haWwpXHJcbiAgICAgICAgICBpZiAodXNlci5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KFwiUGxlYXNlIHNlbGVjdCBhdGxlYXN0IG9uZSB1c2VyXCIpXHJcbiAgICAgICAgICAgIHJldHVyblxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG5cclxuICAgICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09ICdjaGVja2xpc3QnKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGlzdEFwcHJvdmUoKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLkFwcHJvdmVUYXNrKClcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBjaGVja2xpc3RBcHByb3ZlKCkge1xyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBsZXQgdXNlciA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudXNlckxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEudXNlckVtYWlsKVxyXG4gICAgbGV0IHBheWxvYWQgPSB7XHJcbiAgICAgIFwiY2xpZW50SWRcIjogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCxcclxuICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJ1c2VyRW1haWxcIjogdXNlcixcclxuICAgICAgXCJzb3VyY2VDaGVja0xpc3RfaWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgIFwiZmlsdGVydHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcnR5cGUsXHJcbiAgICB9XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmFwcHJvdmVjaGVja2xpc3QocGF5bG9hZCk/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmFwcHJvdmFsc3RhdHVzKClcclxuICAgICAgICAgIGlmICh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0Q2hlY2tsaXN0UUEoZmFsc2UpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRUYXNrUUEodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0U3VjY2Vzc1RvYXN0KGA8ZGl2PjxzcGFuIGNsYXNzPVwibWUtOFwiID4ke3Jlcy5tZXNzYWdlfTwvc3Bhbj48L2Rpdj5gKVxyXG4gICAgICAgIH1cclxuICAgICAgfSwgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KGVycj8uZXJyb3I/LmVycm9yKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIEFwcHJvdmVUYXNrKCkge1xyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBsZXQgdXNlciA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudXNlckxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEudXNlckVtYWlsKVxyXG4gICAgbGV0IHBheWxvYWQgPSB7XHJcbiAgICAgIFwiZnJvbURhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgIFwic3RvcmVJZFwiOiBzdG9yZXMsXHJcbiAgICAgIFwidXNlckVtYWlsXCI6IHVzZXIsXHJcbiAgICAgIFwic291cmNlQ2hlY2tMaXN0X2lkXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkLFxyXG4gICAgICBcImNsaWVudElkXCI6IHRoaXMuaGVhZGVyRmlsdGVycy5jbGllbnQsXHJcbiAgICAgIFwiZmlsdGVydHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcnR5cGUsXHJcbiAgICB9XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmFwcHJvdmV0YXNrKHBheWxvYWQpPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0U3VjY2Vzc1RvYXN0KGA8ZGl2PjxzcGFuIGNsYXNzPVwibWUtOFwiID4ke3Jlcy5tZXNzYWdlfTwvc3Bhbj48L2Rpdj5gKVxyXG4gICAgICAgICAgdGhpcy5hcHByb3ZhbHN0YXR1cygpXHJcbiAgICAgICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0Jykge1xyXG4gICAgICAgICAgICB0aGlzLmdldENoZWNrbGlzdFFBKGZhbHNlKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0VGFza1FBKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChlcnI/LmVycm9yPy5lcnJvcilcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcblxyXG5cclxuICB9XHJcblxyXG4gIGdldENoZWNrbGlzdFFBKHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFNlY3Rpb24gPSBbXVxyXG4gICAgdGhpcy50ZW1wc2VsZWN0ZWRTZWN0aW9uID0gW11cclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLm5vRGF0YSA9IGZhbHNlXHJcbiAgICB0aGlzLnZpZXdsb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMudmlld25vRGF0YSA9IGZhbHNlO1xyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBsZXQgdXNlcnMgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnVzZXJMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnVzZXJFbWFpbClcclxuICAgIGxldCBvYmogPSB7XHJcbiAgICAgIFwiZnJvbURhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgIFwiQ2hlY2tsaXN0VHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmNoZWNrTGlzdFR5cGUsIC8vIFtcImN1c3RvbVwiLCBcIkFJXCJdXHJcbiAgICAgIFwiY2hlY2tsaXN0TmFtZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmNoZWNrbGlzdE5hbWUsXHJcbiAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgIFwiZmlsdGVydHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcnR5cGUsXHJcbiAgICAgIFwidXNlckVtYWlsXCI6IHVzZXJzLFxyXG4gICAgICBcInN0b3JlSWRcIjogc3RvcmVzLFxyXG4gICAgICBcImFuc3dlclR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5hbnN3ZXJUeXBlLCAvL1tcImRlc2NyaXB0aXZlXCIsXCJ5ZXMvbm9cIixcIm11bHRpcGxlY2hvaWNlc2luZ2xlXCIsXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsXCJpbWFnZVwiLFwidmlkZW9cIixcImRlc2NyaXB0aXZlSW1hZ2VcIixcIm11bHRpcGxlSW1hZ2VcIl1cclxuICAgICAgXCJ2aWV3RmxhZ1wiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnZpZXdGbGFnLCAvL1t0cnVlLCBmYWxzZV1cclxuICAgICAgXCJ2aWV3UmVkb1wiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnZpZXdSZWRvLCAvL1t0cnVlLCBmYWxzZV1cclxuICAgICAgXCJmaWx0ZXJcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXIsXHJcbiAgICAgIFwiYXBwcm92ZUZpbHRlclwiOiB0aGlzLmFwcHJvdmVGaWx0ZXIsXHJcbiAgICAgIFwicXVlc3Rpb25zXCI6IHRoaXMuc2VsZWN0ZWRTZWN0aW9uLmxlbmd0aCA+IDAgJiYgdGhpcy5zZWxlY3RlZFNlY3Rpb25bMF0ucXVlc3Rpb25zLmxlbmd0aCA+IDAgPyB0aGlzLnNlbGVjdGVkU2VjdGlvblswXS5xdWVzdGlvbnNbMF0gOiBcIlwiXHJcbiAgICB9XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldGNoZWNrbGlzdChvYmopPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5jaGVja2xpc3REYXRhID0gcmVzPy5kYXRhLmNoZWNrbGlzdFF1ZXN0aW9ucztcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICAgIGNvbnN0IHRhcmdldEZpZWxkID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlID09PSAnQ2x1c3RlcnMnID8gJ3N0b3JlTGlzdCcgOiAndXNlckxpc3QnO1xyXG4gICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQodGFyZ2V0RmllbGQpPy5zZXRWYWx1ZShyZXM/LmRhdGE/LnN0b3Jlc0RldGFpbHMpO1xyXG4gICAgICAgICAgdGhpcy52aWV3Q2hlY2tsaXN0cyhcImFsbFwiLCBcImFsbFwiKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGlzdERhdGEgPSBbXTtcclxuICAgICAgICAgIHRoaXMudmlld0NoZWNrbGlzdHNEYXRhID0gW107XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld25vRGF0YSA9IHRydWU7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgZ2V0dGFza1FBKHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFNlY3Rpb24gPSBbXVxyXG4gICAgdGhpcy50ZW1wc2VsZWN0ZWRTZWN0aW9uID0gW11cclxuXHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5ub0RhdGEgPSBmYWxzZVxyXG4gICAgdGhpcy52aWV3bG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnZpZXdub0RhdGEgPSBmYWxzZTtcclxuICAgIGxldCBzdG9yZXMgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnN0b3JlTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS5zdG9yZUlkKVxyXG4gICAgbGV0IHVzZXJzID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS51c2VyTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS51c2VyRW1haWwpXHJcbiAgICBsZXQgb2JqID0ge1xyXG4gICAgICBcImZyb21EYXRlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZnJvbURhdGUsXHJcbiAgICAgIFwidG9EYXRlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudG9EYXRlLFxyXG4gICAgICBcIkNoZWNrbGlzdFR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlLCAvLyBbXCJjdXN0b21cIiwgXCJBSVwiXVxyXG4gICAgICBcImNoZWNrbGlzdE5hbWVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja2xpc3ROYW1lLFxyXG4gICAgICBcImNoZWNrbGlzdElkXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkLFxyXG4gICAgICBcImZpbHRlcnR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlLFxyXG4gICAgICBcInVzZXJFbWFpbFwiOiB1c2VycyxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJhbnN3ZXJUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuYW5zd2VyVHlwZSwgLy9bXCJkZXNjcmlwdGl2ZVwiLFwieWVzL25vXCIsXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLFwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiLFwiaW1hZ2VcIixcInZpZGVvXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsXCJtdWx0aXBsZUltYWdlXCJdXHJcbiAgICAgIFwidmlld0ZsYWdcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS52aWV3RmxhZywgLy9bdHJ1ZSwgZmFsc2VdXHJcbiAgICAgIFwidmlld1JlZG9cIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS52aWV3UmVkbywgLy9bdHJ1ZSwgZmFsc2VdXHJcbiAgICAgIFwiZmlsdGVyXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVyLFxyXG4gICAgICBcImFwcHJvdmVGaWx0ZXJcIjogdGhpcy5hcHByb3ZlRmlsdGVyLFxyXG4gICAgICBcInF1ZXN0aW9uc1wiOiB0aGlzLnNlbGVjdGVkU2VjdGlvbi5sZW5ndGggPiAwICYmIHRoaXMuc2VsZWN0ZWRTZWN0aW9uWzBdLnF1ZXN0aW9ucy5sZW5ndGggPiAwID8gdGhpcy5zZWxlY3RlZFNlY3Rpb25bMF0ucXVlc3Rpb25zWzBdIDogXCJcIlxyXG4gICAgfVxyXG4gICAgdGhpcy50cmF4U2VydmljZS5nZXRRdWVzdGlvbnMob2JqKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0RGF0YSA9IHJlcz8uZGF0YS5jaGVja2xpc3RRdWVzdGlvbnM7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICAgICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlID09PSAnQ2x1c3RlcnMnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZUxpc3QnKT8uc2V0VmFsdWUocmVzPy5kYXRhPy5zdG9yZXNEZXRhaWxzKVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3VzZXJMaXN0Jyk/LnNldFZhbHVlKHJlcz8uZGF0YT8uc3RvcmVzRGV0YWlscylcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudmlld1Rhc2tMaXN0KFwiYWxsXCIsIFwiYWxsXCIpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0RGF0YSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy52aWV3Q2hlY2tsaXN0c0RhdGEgPSBbXTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy52aWV3bG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy52aWV3bm9EYXRhID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIHZpZXdUYXNrTGlzdChzZWN0aW9uTmFtZTogYW55LCBxdWVzdGlvbk5hbWU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEV4cG9ydCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWN0aW9uTmFtZSA9IHNlY3Rpb25OYW1lO1xyXG4gICAgdGhpcy5xdWVzdGlvbk5hbWUgPSBxdWVzdGlvbk5hbWVcclxuXHJcbiAgICB0aGlzLmxpbWl0ID0gMTtcclxuICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzFdO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTZWN0aW9uLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5saW1pdCA9IDEwLFxyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzEwXTtcclxuICAgIH1cclxuICAgIHRoaXMudmlld2xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy52aWV3bm9EYXRhID0gZmFsc2VcclxuICAgIGxldCBzdG9yZXMgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnN0b3JlTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS5zdG9yZUlkKVxyXG4gICAgbGV0IHVzZXJzID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS51c2VyTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS51c2VyRW1haWwpXHJcbiAgICB0aGlzLnZpZXdDaGVja2xpc3Rzb3B0aW9ucyA9IHtcclxuICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgXCJDaGVja2xpc3RUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSwgLy8gW1wiY2hlY2tsaXN0XCIsIFwidGFza1wiXVxyXG4gICAgICBcImNoZWNrbGlzdE5hbWVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja2xpc3ROYW1lLFxyXG4gICAgICBcImZpbHRlcnR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlLFxyXG4gICAgICBcInVzZXJFbWFpbFwiOiB1c2VycyxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJhbnN3ZXJUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuYW5zd2VyVHlwZSwgLy9bXCJkZXNjcmlwdGl2ZVwiLFwieWVzL25vXCIsXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLFwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiLFwiaW1hZ2VcIixcInZpZGVvXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsXCJtdWx0aXBsZUltYWdlXCJdICAgICAgXHJcbiAgICAgIFwib2Zmc2V0XCI6ICh0aGlzLm9mZnNldCAtIDEpLFxyXG4gICAgICBcImxpbWl0XCI6IHRoaXMubGltaXQsXHJcbiAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgIFwic291cmNlQ2hlY2tMaXN0X2lkXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkLFxyXG4gICAgICBcInZpZXdGbGFnXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudmlld0ZsYWcsXHJcbiAgICAgIFwidmlld1JlZG9cIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS52aWV3UmVkbywgLy9bdHJ1ZSwgZmFsc2VdXHJcbiAgICAgIFwicXVlc3Rpb25zXCI6IHRoaXMuc2VsZWN0ZWRTZWN0aW9uLFxyXG4gICAgICBcImZpbHRlclwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcixcclxuICAgICAgXCJhcHByb3ZlRmlsdGVyXCI6IHRoaXMuYXBwcm92ZUZpbHRlcixcclxuICAgIH1cclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0QW5zd2Vycyh0aGlzLnZpZXdDaGVja2xpc3Rzb3B0aW9ucyk/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmFwcHJvdmFsc3RhdHVzKClcclxuICAgICAgICAgIHRoaXMudmlld0NoZWNrbGlzdHNEYXRhID0gcmVzLmRhdGE7XHJcbiAgICAgICAgICBpZiAodGhpcy5zaG93c2luZ2xlKSB7XHJcbiAgICAgICAgICAgIGxldCBsb29waW5nRGF0YSA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVydHlwZSA9PT0gJ0NsdXN0ZXJzJyA/IHRoaXMuc2VsZWN0ZWRTdG9yZXMgOiB0aGlzLnNlbGVjdGVkVXNlcnNcclxuICAgICAgICAgICAgdGhpcy52aWV3Q2hlY2tsaXN0c0RhdGEuY2hlY2tsaXN0QW5zd2Vycy5tYXAoKGRldGFpbHM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChsb29waW5nRGF0YS5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGUudXNlckVtYWlsID09PSBkZXRhaWxzLnN0b3JlUHJvZmlsZT8udXNlckVtYWlsKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBkZXRhaWxzLnF1ZXN0aW9uQW5zd2VyWzBdLnF1ZXN0aW9uc1swXS5jaGVja2VkID0gdHJ1ZVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudG90YWxDb3VudCA9IHRoaXMudmlld0NoZWNrbGlzdHNEYXRhLnRvdGFsX2NvdW50XHJcbiAgICAgICAgICB0aGlzLnZpZXdsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnZpZXdub0RhdGEgPSBmYWxzZVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnZpZXdDaGVja2xpc3RzRGF0YSA9IFtdXHJcbiAgICAgICAgICB0aGlzLnZpZXdsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnZpZXdub0RhdGEgPSB0cnVlXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHZpZXdDaGVja2xpc3RzKHNlY3Rpb25OYW1lOiBhbnksIHF1ZXN0aW9uTmFtZTogYW55KSB7XHJcbiAgICAvLyB0aGlzLnNlbGVjdGVkU2VjdGlvbiA9IFtdICAgIFxyXG4gICAgdGhpcy5zZWxlY3RlZEV4cG9ydCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWN0aW9uTmFtZSA9IHNlY3Rpb25OYW1lO1xyXG4gICAgdGhpcy5xdWVzdGlvbk5hbWUgPSBxdWVzdGlvbk5hbWVcclxuXHJcbiAgICB0aGlzLmxpbWl0ID0gMTtcclxuICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzFdO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTZWN0aW9uLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5saW1pdCA9IDEwLFxyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzEwXTtcclxuICAgIH1cclxuICAgIHRoaXMudmlld2xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy52aWV3bm9EYXRhID0gZmFsc2VcclxuICAgIGxldCBzdG9yZXMgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnN0b3JlTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS5zdG9yZUlkKVxyXG4gICAgbGV0IHVzZXJzID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS51c2VyTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS51c2VyRW1haWwpXHJcbiAgICB0aGlzLnZpZXdDaGVja2xpc3Rzb3B0aW9ucyA9IHtcclxuICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgXCJDaGVja2xpc3RUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tMaXN0VHlwZSwgLy8gW1wiY2hlY2tsaXN0XCIsIFwidGFza1wiXVxyXG4gICAgICBcImNoZWNrbGlzdE5hbWVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja2xpc3ROYW1lLFxyXG4gICAgICBcImZpbHRlcnR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlLFxyXG4gICAgICBcInN0b3JlSWRcIjogc3RvcmVzLFxyXG4gICAgICBcInVzZXJFbWFpbFwiOiB1c2VycyxcclxuICAgICAgXCJhbnN3ZXJUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuYW5zd2VyVHlwZSwgLy9bXCJkZXNjcmlwdGl2ZVwiLFwieWVzL25vXCIsXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLFwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiLFwiaW1hZ2VcIixcInZpZGVvXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsXCJtdWx0aXBsZUltYWdlXCJdICAgICAgXHJcbiAgICAgIFwib2Zmc2V0XCI6ICh0aGlzLm9mZnNldCAtIDEpLFxyXG4gICAgICBcImxpbWl0XCI6IHRoaXMubGltaXQsXHJcbiAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgIFwic291cmNlQ2hlY2tMaXN0X2lkXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkLFxyXG4gICAgICBcInZpZXdGbGFnXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudmlld0ZsYWcsXHJcbiAgICAgIFwidmlld1JlZG9cIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS52aWV3UmVkbywvL1t0cnVlLCBmYWxzZV1cclxuICAgICAgXCJxdWVzdGlvbnNcIjogdGhpcy5zZWxlY3RlZFNlY3Rpb24sXHJcbiAgICAgIFwiZmlsdGVyXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVyLFxyXG4gICAgICBcImFwcHJvdmVGaWx0ZXJcIjogdGhpcy5hcHByb3ZlRmlsdGVyLFxyXG4gICAgfVxyXG4gICAgdGhpcy50cmF4U2VydmljZS52aWV3Q2hlY2tsaXN0cyh0aGlzLnZpZXdDaGVja2xpc3Rzb3B0aW9ucyk/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmFwcHJvdmFsc3RhdHVzKClcclxuICAgICAgICAgIHRoaXMudmlld0NoZWNrbGlzdHNEYXRhID0gcmVzLmRhdGE7XHJcbiAgICAgICAgICBpZiAodGhpcy5zaG93c2luZ2xlKSB7XHJcbiAgICAgICAgICAgIGxldCBsb29waW5nRGF0YSA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVydHlwZSA9PT0gJ0NsdXN0ZXJzJyA/IHRoaXMuc2VsZWN0ZWRTdG9yZXMgOiB0aGlzLnNlbGVjdGVkVXNlcnNcclxuICAgICAgICAgICAgdGhpcy52aWV3Q2hlY2tsaXN0c0RhdGEuY2hlY2tsaXN0QW5zd2Vycy5tYXAoKGRldGFpbHM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChsb29waW5nRGF0YS5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGUudXNlckVtYWlsID09PSBkZXRhaWxzLnN0b3JlUHJvZmlsZT8udXNlckVtYWlsKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBkZXRhaWxzLnF1ZXN0aW9uQW5zd2VyWzBdLnF1ZXN0aW9uc1swXS5jaGVja2VkID0gdHJ1ZVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudG90YWxDb3VudCA9IHRoaXMudmlld0NoZWNrbGlzdHNEYXRhLnRvdGFsX2NvdW50XHJcbiAgICAgICAgICB0aGlzLnZpZXdsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnZpZXdub0RhdGEgPSBmYWxzZVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnZpZXdDaGVja2xpc3RzRGF0YSA9IFtdXHJcbiAgICAgICAgICB0aGlzLnZpZXdsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnZpZXdub0RhdGEgPSB0cnVlXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuICB0YXNrQ3JlYXRlKCkgeyB9XHJcblxyXG4gIHNob3dzaWRlbmF2OiBib29sZWFuID0gdHJ1ZTtcclxuICBzaWRlbmF2KCkge1xyXG4gICAgdGhpcy5zaG93c2lkZW5hdiA9ICF0aGlzLnNob3dzaWRlbmF2O1xyXG4gIH1cclxuXHJcbiAgb25QYWdlQ2hhbmdlKHBhZ2U6IG51bWJlcikge1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IHBhZ2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2hlY2tBSWNoZWNrbGlzdCgpIHtcclxuICAgIGlmICh0aGlzLmNvbWJpbmVkQ2hlY2tsaXN0LmluY2x1ZGVzKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIG9uUGFnZUNoYW5nZXZpZXcocGFnZU9mZnNldDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm9mZnNldCA9IHBhZ2VPZmZzZXQ7XHJcbiAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQgPT09ICdzdG9yZW9wZW5hbmRjbG9zZScpIHtcclxuICAgICAgdGhpcy5zdG9yZU9wZW5jbG9zZXZpZXcoKVxyXG4gICAgfSBpZiAodGhpcy5ib3hpbWFnZUNoZWNrbGlzdC5pbmNsdWRlcyh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZCkpIHtcclxuICAgICAgdGhpcy5xdWV1ZWFsZXJ0dmlldygpXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW1hZ2VDaGVja2xpc3QuaW5jbHVkZXModGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQ7XHJcbiAgICAgIHRoaXMuZ2V0bW9iaWxlVXNhZ2VEYXRhdmlldygpXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlkZW9DaGVja2xpc3QuaW5jbHVkZXModGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQ7XHJcbiAgICAgIHRoaXMuZ2V0Y3VzdG9tZXJ1bmF0dGVuZGVkdmlldygpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0Jykge1xyXG4gICAgICAgIHRoaXMudmlld0NoZWNrbGlzdHMoJycsICcnKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnZpZXdUYXNrTGlzdChcImFsbFwiLCBcImFsbFwiKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDMwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIG9uUGFnZVNpemVDaGFuZ2UocGFnZVNpemU6IG51bWJlcikge1xyXG4gICAgdGhpcy5saW1pdCA9IHBhZ2VTaXplO1xyXG4gICAgdGhpcy5vZmZzZXQgPSAxO1xyXG4gICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkID09PSAnc3RvcmVvcGVuYW5kY2xvc2UnKSB7XHJcbiAgICAgIHRoaXMuc3RvcmVPcGVuY2xvc2V2aWV3KClcclxuICAgIH0gZWxzZSBpZiAodGhpcy5ib3hpbWFnZUNoZWNrbGlzdC5pbmNsdWRlcyh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZCkpIHtcclxuICAgICAgdGhpcy5xdWV1ZWFsZXJ0dmlldygpXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW1hZ2VDaGVja2xpc3QuaW5jbHVkZXModGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQpKSB7XHJcbiAgICAgIHRoaXMuZ2V0bW9iaWxlVXNhZ2VEYXRhdmlldygpXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlkZW9DaGVja2xpc3QuaW5jbHVkZXModGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQpKSB7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJ1bmF0dGVuZGVkbGlzdChmYWxzZSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnKSB7XHJcbiAgICAgICAgdGhpcy52aWV3Q2hlY2tsaXN0cygnJywgJycpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudmlld1Rhc2tMaXN0KFwiYWxsXCIsIFwiYWxsXCIpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuZXhwb3J0U2hvdyA9IGZhbHNlO1xyXG4gIH1cclxuICBleHBvcnRTaG93ID0gZmFsc2U7XHJcbiAgZXhwb3J0TGFiZWw6IHN0cmluZyA9ICdFeHBvcnQnO1xyXG4gIGV4cG9ydERldChldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5leHBvcnRTaG93ID0gIXRoaXMuZXhwb3J0U2hvdztcclxuICB9XHJcbiAgcXVlc3Rpb25zY291bnQoZGF0YTogYW55KSB7XHJcbiAgICBsZXQgY291bnQgPSAwXHJcbiAgICBkYXRhLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICBjb3VudCA9IGNvdW50ICsgZWxlbWVudC5xdWVzdGlvbnMubGVuZ3RoXHJcblxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gY291bnQ7XHJcbiAgfVxyXG4gIHNldEV4cG9ydEFzUFBUKHR5cGU6IGFueSwgZmlsZVR5cGU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5leHBvcnRMYWJlbCA9IHR5cGU7ICAvLyBVcGRhdGUgdGhlIGxhYmVsIHRleHRcclxuICAgIHRoaXMuZXhwb3J0U2hvdyA9IGZhbHNlOyAgLy8gQ2xvc2UgdGhlIGV4cG9ydCBtZW51IGFmdGVyIHNlbGVjdGlvblxyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBsZXQgdXNlcnMgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnVzZXJMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnVzZXJFbWFpbClcclxuXHJcbiAgICBpZiAoZmlsZVR5cGUgPT09ICdwcHQnKSB7XHJcbiAgICAgIGxldCBzdGFydCA9IGRheWpzKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZnJvbURhdGUpO1xyXG4gICAgICBsZXQgZW5kID0gZGF5anModGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUpO1xyXG4gICAgICBjb25zdCBkaWZmZXJlbmNlID0gZW5kLmRpZmYoc3RhcnQsICdkYXlzJyk7XHJcblxyXG4gICAgICBpZiAoZGlmZmVyZW5jZSA9PT0gMiAmJiB0aGlzLnF1ZXN0aW9uc2NvdW50KHRoaXMuc2VsZWN0ZWRTZWN0aW9uKSA+IDEpIHtcclxuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KGBQbGVhc2Ugc2VsZWN0IG1heGltdW0gb2YgMSBxdWVzdGlvbiBvbmx5YClcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG4gICAgICBpZiAoZGlmZmVyZW5jZSA9PT0gMSAmJiB0aGlzLnF1ZXN0aW9uc2NvdW50KHRoaXMuc2VsZWN0ZWRTZWN0aW9uKSA+IDMpIHtcclxuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KGBQbGVhc2Ugc2VsZWN0IG1heGltdW0gb2YgMyBxdWVzdGlvbiBvbmx5YClcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG4gICAgICBpZiAoZGlmZmVyZW5jZSA9PT0gMCAmJiB0aGlzLnF1ZXN0aW9uc2NvdW50KHRoaXMuc2VsZWN0ZWRTZWN0aW9uKSA+IDMpIHtcclxuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KGBQbGVhc2Ugc2VsZWN0IG1heGltdW0gb2YgMyBxdWVzdGlvbiBvbmx5YClcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmV4cG9ydExhYmVsID0gJ0V4cG9ydCdcclxuICAgIH1cclxuXHJcbiAgICBsZXQgcGF5bG9hZCA9IHtcclxuICAgICAgXCJkb3dubG9hZEluc2VydEZyb21cIjogXCJnYWxsZXJ5XCIsXHJcbiAgICAgIFwiZnJvbURhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgIFwiY2hlY2tMaXN0VHlwZVwiOiB0aGlzLnNlbGVjdCxcclxuICAgICAgXCJjaGVja2xpc3RJZFwiOiBbXSxcclxuICAgICAgXCJzb3VyY2VDaGVja0xpc3RfaWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgIFwiY2hlY2tsaXN0TmFtZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmNoZWNrbGlzdE5hbWUsXHJcbiAgICAgIFwiYW5zd2VyVHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmFuc3dlclR5cGUsXHJcbiAgICAgIFwiZmlsZVR5cGVcIjogZmlsZVR5cGUsXHJcbiAgICAgIFwic3RvcmVJZHNcIjogc3RvcmVzLFxyXG4gICAgICBcInVzZXJFbWFpbExpc3RcIjogdXNlcnMsXHJcbiAgICAgIFwiY2xpZW50SWRcIjogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCxcclxuICAgICAgXCJxdWVzdGlvbnNcIjogdGhpcy5zZWxlY3RlZFNlY3Rpb24sXHJcbiAgICAgIFwicHJldmlld1R5cGVcIjogdGhpcy5wcmV2aWV3VHlwZSxcclxuICAgICAgXCJ2aWV3RmxhZ1wiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnZpZXdGbGFnLFxyXG4gICAgICBcInZpZXdSZWRvXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudmlld1JlZG8sIC8vW3RydWUsIGZhbHNlXVxyXG4gICAgICBcImluc2VydFR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlLFxyXG4gICAgICBcImZpbHRlclwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcixcclxuICAgICAgXCJhcHByb3ZlRmlsdGVyXCI6IHRoaXMuYXBwcm92ZUZpbHRlcixcclxuICAgICAgXCJmaWx0ZXJ0eXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVydHlwZSxcclxuICAgICAgXCJhaUZpbHRlclwiOiB0aGlzLmNhdGVnb3J5IHx8ICcnLFxyXG4gICAgfVxyXG4gICAgbGV0IGNsaWVudGluZm8gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2xpZW50LWRldGFpbHNcIikgfHwgXCJcIilcclxuICAgIGxldCB1c2VyaW5mbyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c2VyLWluZm9cIikgfHwgXCJcIilcclxuICAgIGlmICh0aGlzLnNlbGVjdCA9PT0gJ2N1c3RvbScgfHwgdGhpcy5zZWxlY3QgPT09ICd0YXNrJykge1xyXG4gICAgICBpZiAoKGNsaWVudGluZm8/LnRyYXhEYXRlUmFuZ2UgPT09IDcgfHwgdXNlcmluZm8/LnRyYXhEYXRlUmFuZ2UgPT09IDcpICYmIHR5cGUgPT09ICdFeHBvcnQgYXMgQ1NWJyB8fCB0eXBlID09PSAnRXhwb3J0IGFzIFBQVCcgfHwgdHlwZSA9PT0gJ0V4cG9ydCBhcyBaSVAnKSB7XHJcbiAgICAgICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEV4cG9ydEdhbGxlcnlDb21wb25lbnQsIHtcclxuICAgICAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICAgICAgc2l6ZTogXCJsZ1wiLFxyXG4gICAgICAgICAgc2Nyb2xsYWJsZTogdHJ1ZSxcclxuICAgICAgICAgIGJhY2tkcm9wOiAnc3RhdGljJyxcclxuICAgICAgICAgIHdpbmRvd0NsYXNzOiBcImN1c3RvbS1oZWlnaHQtbW9kYWxcIiAgLy8gPC0tIEFkZCBhIGN1c3RvbSBjbGFzcyBoZXJlICBcclxuICAgICAgICB9KTtcclxuICAgICAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS50eXBlID0gdHlwZTtcclxuICAgICAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5wYXlsb2FkID0gcGF5bG9hZDtcclxuXHJcbiAgICAgICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0ID09PSBcInN1Y2Nlc3NcIikge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldFN1Y2Nlc3NUb2FzdChgPGRpdj48c3BhbiBjbGFzcz1cIm1lLThcIiA+RG93bmxvYWRpbmcgeW91ciByZXBvcnRzPC9zcGFuPjxhIGhyZWY9XCJub3RpZmljYXRpb25zL2FsZXJ0cz90YWI9ZG93bmxvYWRcIiBzdHlsZT1cImNvbG9yOiM5OWMzZmY7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IGN1cnNvcjpwb2ludGVyXCIgPlZpZXc8L2E+PC9kaXY+YClcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT09IFwiZXJyb3JcIikge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldEVycm9yVG9hc3QoYFNvbWV0aGluZyB3ZW50IHdyb25nICFgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZXhwb3J0TGFiZWwgPSAnRXhwb3J0J1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy50cmF4U2VydmljZS5yZXBvcnRUYWJsZUV4cG9ydChwYXlsb2FkKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldFN1Y2Nlc3NUb2FzdChgPGRpdj48c3BhbiBjbGFzcz1cIm1lLThcIiA+RG93bmxvYWRpbmcgeW91ciByZXBvcnRzPC9zcGFuPjxhIGhyZWY9XCJub3RpZmljYXRpb25zL2FsZXJ0cz90YWI9ZG93bmxvYWRcIiBzdHlsZT1cImNvbG9yOiM5OWMzZmY7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IGN1cnNvcjpwb2ludGVyXCIgPlZpZXc8L2E+PC9kaXY+YClcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KGBTb21ldGhpbmcgd2VudCB3cm9uZyAhYClcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmV4cG9ydExhYmVsID0gJ0V4cG9ydCdcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ID09PSAnc2NydW0nIHx8IHRoaXMuc2VsZWN0ID09PSAnY2xlYW5pbmcnIHx8IHRoaXMuc2VsZWN0ID09PSAnc3RvcmVvcGVuYW5kY2xvc2UnIHx8IHRoaXMuc2VsZWN0ID09PSAnaW52ZW50b3J5Y291bnQnIHx8IHRoaXMuc2VsZWN0ID09PSAnY2Fyc2F0dGVuZGVkJyB8fCB0aGlzLnNlbGVjdCA9PT0gJ251bWJlcnBsYXRlaW5mbycgfHwgdGhpcy5zZWxlY3QgPT09ICd2ZWhpY2xlX2NoZWNrX2luJyB8fCB0aGlzLnNlbGVjdCA9PT0gJ291dHNpZGVidXNpbmVzc2hvdXJzcXVldWV0cmFja2luZycpIHtcclxuXHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdCAhPSAnc3RvcmVvcGVuYW5kY2xvc2UnKSB7XHJcbiAgICAgICAgdGhpcy5wcmV2aWV3VHlwZSA9ICd2aWRlbydcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy50cmF4U2VydmljZS5haWNoZWNrbGlzdEV4cG9ydChwYXlsb2FkKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldFN1Y2Nlc3NUb2FzdChgPGRpdj48c3BhbiBjbGFzcz1cIm1lLThcIiA+RG93bmxvYWRpbmcgeW91ciByZXBvcnRzPC9zcGFuPjxhIGhyZWY9XCJub3RpZmljYXRpb25zL2FsZXJ0cz90YWI9ZG93bmxvYWRcIiBzdHlsZT1cImNvbG9yOiM5OWMzZmY7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IGN1cnNvcjpwb2ludGVyXCIgPlZpZXc8L2E+PC9kaXY+YClcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldEVycm9yVG9hc3QoYFNvbWV0aGluZyB3ZW50IHdyb25nICFgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5leHBvcnRMYWJlbCA9ICdFeHBvcnQnXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdHlwZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnJlbW92ZVF1ZXJ5UGFyYW1zKClcclxuICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd0eXBlJyk/LnNldFZhbHVlKGV2ZW50KVxyXG4gICAgdGhpcy5zaG93c2luZ2xlID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dtdWx0aSA9IHRydWU7XHJcbiAgICB0aGlzLmFuc3dlckZpbHRlciA9IFtdXHJcbiAgICBpZiAoZXZlbnQgPT09ICd0YXNrJykge1xyXG4gICAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldFN0b3Jlc2xpc3QoeyBjbGllbnRJZDogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCwgY2x1c3RlcnM6IHRoaXMuZ3JvdXBzLCBjaXR5OiBbXSB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSByZXMuZGF0YS5zdG9yZXNEYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlcyA9IHJlcy5kYXRhLnN0b3Jlc0RhdGFcclxuICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZSh0aGlzLnN0b3JlTGlzdClcclxuICAgICAgICAgICAgdGhpcy5nZXRBbGxUYXNrcyhmYWxzZSlcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2NoZWNrTGlzdFR5cGUnKT8uc2V0VmFsdWUoJ2N1c3RvbScpXHJcbiAgICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0U3RvcmVzbGlzdCh7IGNsaWVudElkOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LCBjbHVzdGVyczogdGhpcy5ncm91cHMsIGNpdHk6IFtdIH0pLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IHJlcy5kYXRhLnN0b3Jlc0RhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVzID0gcmVzLmRhdGEuc3RvcmVzRGF0YVxyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc3RvcmVMaXN0Jyk/LnNldFZhbHVlKHRoaXMuc3RvcmVMaXN0KVxyXG4gICAgICAgICAgICB0aGlzLmdldEFsbENoZWNrTGlzdHModHJ1ZSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIGdldEFsbFRhc2tzKHR5cGU6IGFueSkge1xyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuc3RvcmVzPy5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS5zdG9yZUlkKVxyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgZnJvbURhdGU6IHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdmcm9tRGF0ZScpPy52YWx1ZSxcclxuICAgICAgdG9EYXRlOiB0aGlzLmdhbGxlcnlGb3JtLmdldCgndG9EYXRlJyk/LnZhbHVlLFxyXG4gICAgICBzdG9yZUlkOiBzdG9yZXMsXHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckZpbHRlcnM/LmNsaWVudCxcclxuICAgICAgc29ydENvbHVtbk5hbWU6IFwiY2hlY2tMaXN0TmFtZVwiLFxyXG4gICAgICBzb3J0Qnk6IDFcclxuICAgIH1cclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0VGFza0xpc3QocGF5bG9hZCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0cyA9IHJlcy5kYXRhLmNoZWNrbGlzdERhdGFcclxuXHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMucXVlcnlQYXJhbXMuc291cmNlQ2hlY2tMaXN0X2lkICYmIHRoaXMucXVlcnlQYXJhbXMuY2hlY2tsaXN0VHlwZSA9PSAndGFzaycpIHtcclxuICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc291cmNlQ2hlY2tMaXN0X2lkJyk/LnNldFZhbHVlKHRoaXMucXVlcnlQYXJhbXMuc291cmNlQ2hlY2tMaXN0X2lkKVxyXG4gICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd0eXBlJyk/LnNldFZhbHVlKCd0YXNrJylcclxuICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnY2hlY2tMaXN0VHlwZScpPy5zZXRWYWx1ZSh0aGlzLnF1ZXJ5UGFyYW1zLmNoZWNrbGlzdFR5cGUpXHJcbiAgICAgICAgICAgICAgbGV0IGdldGNoZWNrbGlzdCA9IHRoaXMuY2hlY2tsaXN0cy5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGUuc291cmNlQ2hlY2tMaXN0X2lkID09PSB0aGlzLnF1ZXJ5UGFyYW1zLnNvdXJjZUNoZWNrTGlzdF9pZClcclxuXHJcbiAgICAgICAgICAgICAgaWYgKGdldGNoZWNrbGlzdCAmJiBnZXRjaGVja2xpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2NoZWNrbGlzdE5hbWUnKT8uc2V0VmFsdWUoZ2V0Y2hlY2tsaXN0WzBdPy5jaGVja0xpc3ROYW1lKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2NoZWNrTGlzdERlc2NyaXB0aW9uJyk/LnNldFZhbHVlKGdldGNoZWNrbGlzdFswXT8uY2hlY2tMaXN0RGVzY3JpcHRpb24pXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrbGlzdE5hbWUgPSBnZXRjaGVja2xpc3RbMF0/LmNoZWNrTGlzdE5hbWVcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgLy8gdGhpcy5yZW1vdmVRdWVyeVBhcmFtcygpXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2NoZWNrbGlzdE5hbWUnKT8uc2V0VmFsdWUodGhpcy5jaGVja2xpc3RzWzBdPy5jaGVja0xpc3ROYW1lKVxyXG4gICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzb3VyY2VDaGVja0xpc3RfaWQnKT8uc2V0VmFsdWUodGhpcy5jaGVja2xpc3RzWzBdPy5zb3VyY2VDaGVja0xpc3RfaWQpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHR5cGUpIHtcclxuICAgICAgICAgICAgICB0aGlzLmdldHRhc2tRQShmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sIDApXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0cyA9IFtdXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0VGFza1FBKHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFNlY3Rpb24gPSBbXVxyXG4gICAgdGhpcy50ZW1wc2VsZWN0ZWRTZWN0aW9uID0gW11cclxuXHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5ub0RhdGEgPSBmYWxzZVxyXG4gICAgdGhpcy52aWV3bG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnZpZXdub0RhdGEgPSBmYWxzZTtcclxuICAgIGxldCBzdG9yZXMgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnN0b3JlTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS5zdG9yZUlkKVxyXG4gICAgbGV0IHVzZXIgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnVzZXJMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnVzZXJFbWFpbClcclxuICAgIGxldCBvYmogPSB7XHJcbiAgICAgIFwiZnJvbURhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgIFwiQ2hlY2tsaXN0VHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGUsIC8vIFtcImN1c3RvbVwiLCBcIkFJXCJdXHJcbiAgICAgIFwiY2hlY2tsaXN0TmFtZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmNoZWNrbGlzdE5hbWUsXHJcbiAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgIFwic3RvcmVJZFwiOiBzdG9yZXMsXHJcbiAgICAgIFwidXNlckVtYWlsXCI6IHVzZXIsXHJcbiAgICAgIFwiZmlsdGVydHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcnR5cGUsXHJcbiAgICAgIFwiYW5zd2VyVHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmFuc3dlclR5cGUsIC8vW1wiZGVzY3JpcHRpdmVcIixcInllcy9ub1wiLFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIixcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIixcImltYWdlXCIsXCJ2aWRlb1wiLFwiZGVzY3JpcHRpdmVJbWFnZVwiLFwibXVsdGlwbGVJbWFnZVwiXVxyXG4gICAgICBcInZpZXdGbGFnXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudmlld0ZsYWcsIC8vW3RydWUsIGZhbHNlXVxyXG4gICAgICBcInZpZXdSZWRvXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudmlld1JlZG8sIC8vW3RydWUsIGZhbHNlXVxyXG4gICAgICBcImZpbHRlclwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcixcclxuICAgICAgXCJhcHByb3ZlRmlsdGVyXCI6IHRoaXMuYXBwcm92ZUZpbHRlcixcclxuICAgICAgXCJxdWVzdGlvbnNcIjogdGhpcy5zZWxlY3RlZFNlY3Rpb24ubGVuZ3RoID4gMCAmJiB0aGlzLnNlbGVjdGVkU2VjdGlvblswXS5xdWVzdGlvbnMubGVuZ3RoID4gMCA/IHRoaXMuc2VsZWN0ZWRTZWN0aW9uWzBdLnF1ZXN0aW9uc1swXSA6IFwiXCJcclxuICAgIH1cclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0UXVlc3Rpb25zKG9iaik/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGlzdERhdGEgPSByZXM/LmRhdGEuY2hlY2tsaXN0UXVlc3Rpb25zO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgICAgICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVydHlwZSA9PT0gJ0NsdXN0ZXJzJykge1xyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc3RvcmVMaXN0Jyk/LnNldFZhbHVlKHJlcz8uZGF0YT8uc3RvcmVzRGV0YWlscylcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd1c2VyTGlzdCcpPy5zZXRWYWx1ZShyZXM/LmRhdGE/LnN0b3Jlc0RldGFpbHMpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnZpZXdUYXNrTGlzdChcImFsbFwiLCBcImFsbFwiKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGlzdERhdGEgPSBbXTtcclxuICAgICAgICAgIHRoaXMudmlld0NoZWNrbGlzdHNEYXRhID0gW107XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld25vRGF0YSA9IHRydWU7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgdmlld1Rhc2tzKHNlY3Rpb25OYW1lOiBhbnksIHF1ZXN0aW9uTmFtZTogYW55KSB7XHJcbiAgICAvLyB0aGlzLnNlbGVjdGVkU2VjdGlvbiA9IFtdICAgIFxyXG4gICAgdGhpcy5zZWxlY3RlZEV4cG9ydCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWN0aW9uTmFtZSA9IHNlY3Rpb25OYW1lO1xyXG4gICAgdGhpcy5xdWVzdGlvbk5hbWUgPSBxdWVzdGlvbk5hbWVcclxuXHJcbiAgICB0aGlzLmxpbWl0ID0gMTtcclxuICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzFdO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTZWN0aW9uLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5saW1pdCA9IDEwLFxyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzEwXTtcclxuICAgIH1cclxuICAgIHRoaXMudmlld2xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy52aWV3bm9EYXRhID0gZmFsc2VcclxuICAgIGxldCBzdG9yZXMgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnN0b3JlTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS5zdG9yZUlkKVxyXG4gICAgdGhpcy52aWV3Q2hlY2tsaXN0c29wdGlvbnMgPSB7XHJcbiAgICAgIFwiZnJvbURhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgIFwiQ2hlY2tsaXN0VHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmNoZWNrTGlzdFR5cGUsIC8vIFtcImNoZWNrbGlzdFwiLCBcInRhc2tcIl1cclxuICAgICAgXCJjaGVja2xpc3ROYW1lXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tsaXN0TmFtZSxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJhbnN3ZXJUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuYW5zd2VyVHlwZSwgLy9bXCJkZXNjcmlwdGl2ZVwiLFwieWVzL25vXCIsXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLFwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiLFwiaW1hZ2VcIixcInZpZGVvXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsXCJtdWx0aXBsZUltYWdlXCJdICAgICAgXHJcbiAgICAgIFwib2Zmc2V0XCI6ICh0aGlzLm9mZnNldCAtIDEpLFxyXG4gICAgICBcImxpbWl0XCI6IHRoaXMubGltaXQsXHJcbiAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgIFwic291cmNlQ2hlY2tMaXN0X2lkXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkLFxyXG4gICAgICBcInZpZXdGbGFnXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudmlld0ZsYWcsXHJcbiAgICAgIFwidmlld1JlZG9cIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS52aWV3UmVkbywgLy9bdHJ1ZSwgZmFsc2VdXHJcbiAgICAgIFwicXVlc3Rpb25zXCI6IHRoaXMuc2VsZWN0ZWRTZWN0aW9uLFxyXG4gICAgICBcImZpbHRlclwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcixcclxuICAgICAgXCJhcHByb3ZlRmlsdGVyXCI6IHRoaXMuYXBwcm92ZUZpbHRlcixcclxuICAgIH1cclxuICAgIHRoaXMudHJheFNlcnZpY2Uudmlld0NoZWNrbGlzdHModGhpcy52aWV3Q2hlY2tsaXN0c29wdGlvbnMpPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy52aWV3Q2hlY2tsaXN0c0RhdGEgPSByZXMuZGF0YTtcclxuICAgICAgICAgIGlmICh0aGlzLnNob3dzaW5nbGUpIHtcclxuICAgICAgICAgICAgbGV0IGxvb3BpbmdEYXRhID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlID09PSAnQ2x1c3RlcnMnID8gdGhpcy5zZWxlY3RlZFN0b3JlcyA6IHRoaXMuc2VsZWN0ZWRVc2Vyc1xyXG4gICAgICAgICAgICB0aGlzLnZpZXdDaGVja2xpc3RzRGF0YS5jaGVja2xpc3RBbnN3ZXJzLm1hcCgoZGV0YWlsczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGxvb3BpbmdEYXRhLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZS51c2VyRW1haWwgPT09IGRldGFpbHMuc3RvcmVQcm9maWxlPy51c2VyRW1haWwpLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGRldGFpbHMucXVlc3Rpb25BbnN3ZXJbMF0ucXVlc3Rpb25zWzBdLmNoZWNrZWQgPSB0cnVlXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50b3RhbENvdW50ID0gdGhpcy52aWV3Q2hlY2tsaXN0c0RhdGEudG90YWxfY291bnRcclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld25vRGF0YSA9IGZhbHNlXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudmlld0NoZWNrbGlzdHNEYXRhID0gW11cclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld25vRGF0YSA9IHRydWVcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIHRhc2tyZWRpcmVjdChxdWVzdGlvbjogYW55LCBzdG9yZVByb2ZpbGU6IGFueSwgY2hlY2tsaXN0SW5mbzogYW55KSB7XHJcbiAgICBpZiAoc3RvcmVQcm9maWxlPy5zdG9yZV9pZCAmJiBzdG9yZVByb2ZpbGU/LnN0b3JlX2lkICE9ICcnKSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy8nLCB7IHNraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZSB9KS50aGVuKCgpID0+IHtcclxuICAgICAgICAvL3F1ZXN0aW9uLnRhc2tEYXRlID8gcXVlc3Rpb24udGFza0RhdGUgOiBjaGVja2xpc3RJbmZvLmRhdGUgIGFzIHBlciBnb3dyaSB0b2xkXHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RyYXgvZ2FsbGVyeSddLFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBxdWVyeVBhcmFtczoge1xyXG4gICAgICAgICAgICAgIENoZWNrbGlzdERhdGU6IGRheWpzKGNoZWNrbGlzdEluZm8uZGF0ZSkuZm9ybWF0KCdZWVlZLU1NLUREJyksXHJcbiAgICAgICAgICAgICAgc3RvcmVJZDogc3RvcmVQcm9maWxlPy5zdG9yZV9pZCxcclxuICAgICAgICAgICAgICBjaGVja2xpc3RUeXBlOiBcInRhc2tcIixcclxuICAgICAgICAgICAgICBzb3VyY2VDaGVja0xpc3RfaWQ6IHF1ZXN0aW9uLnRhc2tJZCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcclxuICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcclxuICAgICAgICAgIH1cclxuICAgICAgICApXHJcbiAgICAgIH0pXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvJywgeyBza2lwTG9jYXRpb25DaGFuZ2U6IHRydWUgfSkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RyYXgvZ2FsbGVyeSddLFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBxdWVyeVBhcmFtczoge1xyXG4gICAgICAgICAgICAgIENoZWNrbGlzdERhdGU6IGRheWpzKGNoZWNrbGlzdEluZm8uZGF0ZSkuZm9ybWF0KCdZWVlZLU1NLUREJyksXHJcbiAgICAgICAgICAgICAgdXNlckVtYWlsOiBzdG9yZVByb2ZpbGU/LnVzZXJFbWFpbCxcclxuICAgICAgICAgICAgICBjaGVja2xpc3RUeXBlOiBcInRhc2tcIixcclxuICAgICAgICAgICAgICBzb3VyY2VDaGVja0xpc3RfaWQ6IHF1ZXN0aW9uLnRhc2tJZCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcclxuICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcclxuICAgICAgICAgIH1cclxuICAgICAgICApXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgVmlld0luRGV0YWlscyhkYXRhOiBhbnksIGNoZWNrbGlzdEluZm86IGFueSwgc3RvcmVQcm9maWxlOiBhbnksIHNlY3Rpb246IGFueSkge1xyXG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKFRhc2tMb2dzQ29tcG9uZW50LCB7IGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbGcnLCB9KTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLm9wZXJhdGlvbnR5cGUgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGU7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5zb3VyY2VDaGVja0xpc3RfaWQgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZDtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmlucHV0RGF0YSA9IGRhdGE7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5jaGVja2xpc3RJbmZvID0gY2hlY2tsaXN0SW5mbztcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnN0b3JlUHJvZmlsZSA9IHN0b3JlUHJvZmlsZTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnNlY3Rpb25JbmZvID0gc2VjdGlvbjtcclxuXHJcbiAgfVxyXG5cclxuICBhZGRUYXNrKHR5cGU6IGFueSwgZGF0YTogYW55LCBjaGVja2xpc3RJbmZvOiBhbnksIHN0b3JlUHJvZmlsZTogYW55LCBzZWN0aW9uOiBhbnkpIHtcclxuXHJcbiAgICAvLyBpZihkYXRhLmFuc3dlclR5cGUgPT09XCJtdWx0aXBsZWNob2ljZXNpbmdsZVwifHxkYXRhLmFuc3dlclR5cGUgPT09XCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIpe1xyXG4gICAgLy8gICBkYXRhLmFuc3dlcnMgPSBbXVxyXG4gICAgLy8gfVxyXG4gICAgaWYgKGRhdGEubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlICYmIGRhdGEubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlLmxlbmd0aCkge1xyXG4gICAgICBkYXRhLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgPSBkYXRhLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5pbWFnZVVSTCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkYXRhLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgPSBbZGF0YS5xdWVzdGlvblJlZmVyZW5jZUltYWdlXTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQWRkVGFza0NvbXBvbmVudCwge1xyXG4gICAgICBiYWNrZHJvcDogJ3N0YXRpYycsXHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbGcnLFxyXG4gICAgfSk7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS50eXBlID0gdHlwZTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLm9wZXJhdGlvbnR5cGUgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGU7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5zb3VyY2VDaGVja0xpc3RfaWQgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZDtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmlucHV0RGF0YSA9IGRhdGE7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5jaGVja2xpc3RJbmZvID0gY2hlY2tsaXN0SW5mbztcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnN0b3JlUHJvZmlsZSA9IHN0b3JlUHJvZmlsZTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnNlY3Rpb25JbmZvID0gc2VjdGlvbjtcclxuXHJcblxyXG4gICAgZGF0YT8uYW5zd2Vycy5mb3JFYWNoKChhbnM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoYW5zPy5tdWx0aVJyZWZlcmVuY2VJbWFnZSAmJiBhbnM/Lm11bHRpUnJlZmVyZW5jZUltYWdlLmxlbmd0aCkge1xyXG4gICAgICAgIGFucy5yZWZlcmVuY2VJbWFnZSA9IGFucy5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0uaW1hZ2VVUkwpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChhbnM/LnJlZmVyZW5jZUltYWdlICYmIGFucz8ucmVmZXJlbmNlSW1hZ2UgIT0gJycgJiYgYW5zPy5yZWZlcmVuY2VJbWFnZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICBhbnMucmVmZXJlbmNlSW1hZ2UgPSBbYW5zPy5yZWZlcmVuY2VJbWFnZV1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UudGFza0RldGFpbHMgPSB7XHJcbiAgICAgIHNlY3Rpb25zOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgXCJpZFwiOiBcIlwiLFxyXG4gICAgICAgICAgXCJuYW1lXCI6IFwiXCIsXHJcbiAgICAgICAgICBcInF1ZXN0aW9uc1wiOiBbZGF0YV1cclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuXHJcbiAgICB9O1xyXG5cclxuICAgIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFN0b3JlcyA9IFtdO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSBbXTtcclxuICAgICAgaWYgKHJlc3VsdCA9PSAnc3VibWl0Jykge1xyXG4gICAgICAgIGlmICh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnKSB7XHJcbiAgICAgICAgICB0aGlzLmdldENoZWNrbGlzdFFBKGZhbHNlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5nZXRUYXNrUUEodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlKVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBkYXRhLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgPSAnJ1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBjaGVja2FsbGFwcHJvdmVkKCkge1xyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBsZXQgdXNlcnMgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnVzZXJMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnVzZXJFbWFpbClcclxuICAgIGxldCBpbnB1dCA9IHtcclxuICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJ1c2VyRW1haWxcIjogdXNlcnMsXHJcbiAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgIFwiQ2hlY2tsaXN0VHlwZVwiOiBcImN1c3RvbVwiLFxyXG4gICAgICBcInR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlLFxyXG4gICAgICBcImZpbHRlcnR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlLFxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ2NoZWNrbGlzdCcpIHtcclxuICAgICAgdGhpcy50cmF4U2VydmljZS5BbGxhcHByb3ZhbHN0YXR1c2NoZWNrbGlzdChpbnB1dCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWxsYXBwcm92YWxTdGF0dXMgPSBmYWxzZVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hbGxhcHByb3ZhbFN0YXR1cyA9IHRydWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRyYXhTZXJ2aWNlLkFsbGFwcHJvdmFsc3RhdHVzdGFzayhpbnB1dCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWxsYXBwcm92YWxTdGF0dXMgPSBmYWxzZVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hbGxhcHByb3ZhbFN0YXR1cyA9IHRydWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcblxyXG5cclxuICB9XHJcbiAgYXBwcm92YWxzdGF0dXMoKSB7XHJcbiAgICB0aGlzLmNoZWNrYWxsYXBwcm92ZWQoKVxyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBsZXQgdXNlcnMgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnVzZXJMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnVzZXJFbWFpbClcclxuICAgIGxldCBpbnB1dCA9IHtcclxuICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJ1c2VyRW1haWxcIjogdXNlcnMsXHJcbiAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgIFwiQ2hlY2tsaXN0VHlwZVwiOiBcImN1c3RvbVwiLFxyXG4gICAgICBcInR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlLFxyXG4gICAgICBcImZpbHRlcnR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlLFxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ2NoZWNrbGlzdCcpIHtcclxuICAgICAgdGhpcy50cmF4U2VydmljZS5hcHByb3ZhbHN0YXR1c2NoZWNrbGlzdChpbnB1dCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwcm92YWxTdGF0dXMgPSBmYWxzZVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hcHByb3ZhbFN0YXR1cyA9IHRydWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRyYXhTZXJ2aWNlLmFwcHJvdmFsc3RhdHVzdGFzayhpbnB1dCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwcm92YWxTdGF0dXMgPSBmYWxzZVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hcHByb3ZhbFN0YXR1cyA9IHRydWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcblxyXG5cclxuICB9XHJcbiAgdGFza1RhYih0YXNrOiBhbnkpIHtcclxuXHJcblxyXG4gICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2ZpbHRlcicpPy5zZXRWYWx1ZSh0YXNrLmtleSlcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLm5vRGF0YSA9IGZhbHNlXHJcbiAgICB0aGlzLnZpZXdsb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMudmlld25vRGF0YSA9IGZhbHNlO1xyXG4gICAgbGV0IG9iaiA9IHtcclxuICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgXCJDaGVja2xpc3RUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tMaXN0VHlwZSwgLy8gW1wiY3VzdG9tXCIsIFwiQUlcIl1cclxuICAgICAgXCJjaGVja2xpc3ROYW1lXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tsaXN0TmFtZSxcclxuICAgICAgXCJjaGVja2xpc3RJZFwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZCxcclxuICAgICAgXCJzdG9yZUlkXCI6IHRhc2suc3RvcmVzLFxyXG4gICAgICBcImFuc3dlclR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5hbnN3ZXJUeXBlLCAvL1tcImRlc2NyaXB0aXZlXCIsXCJ5ZXMvbm9cIixcIm11bHRpcGxlY2hvaWNlc2luZ2xlXCIsXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsXCJpbWFnZVwiLFwidmlkZW9cIixcImRlc2NyaXB0aXZlSW1hZ2VcIixcIm11bHRpcGxlSW1hZ2VcIl1cclxuICAgICAgXCJ2aWV3RmxhZ1wiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnZpZXdGbGFnLCAvL1t0cnVlLCBmYWxzZV1cclxuICAgICAgXCJ2aWV3UmVkb1wiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnZpZXdSZWRvLCAvL1t0cnVlLCBmYWxzZV1cclxuICAgICAgXCJmaWx0ZXJcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXIsXHJcbiAgICAgIFwiYXBwcm92ZUZpbHRlclwiOiB0aGlzLmFwcHJvdmVGaWx0ZXIsXHJcbiAgICAgIFwiZmlsdGVydHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcnR5cGUsXHJcbiAgICAgIFwicXVlc3Rpb25zXCI6IHRoaXMuc2VsZWN0ZWRTZWN0aW9uLmxlbmd0aCA+IDAgJiYgdGhpcy5zZWxlY3RlZFNlY3Rpb25bMF0ucXVlc3Rpb25zLmxlbmd0aCA+IDAgPyB0aGlzLnNlbGVjdGVkU2VjdGlvblswXS5xdWVzdGlvbnNbMF0gOiBcIlwiXHJcbiAgICB9XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldGNoZWNrbGlzdChvYmopPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgLy8gdGhpcy5jaGVja2xpc3REYXRhID0gcmVzPy5kYXRhLmNoZWNrbGlzdFF1ZXN0aW9ucztcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICAgIGlmICh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcnR5cGUgPT09ICdDbHVzdGVycycpIHtcclxuICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZShyZXM/LmRhdGE/LnN0b3Jlc0RldGFpbHMpXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgndXNlckxpc3QnKT8uc2V0VmFsdWUocmVzPy5kYXRhPy5zdG9yZXNEZXRhaWxzKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy52aWV3Q2hlY2tsaXN0cyhcImFsbFwiLCBcImFsbFwiKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGlzdERhdGEgPSBbXTtcclxuICAgICAgICAgIHRoaXMudmlld0NoZWNrbGlzdHNEYXRhID0gW107XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld25vRGF0YSA9IHRydWU7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG4gIGNhdGVnb3J5Q2hhbmdlKCkge1xyXG4gICAgdGhpcy5jdXN0b21lcnVuYXR0ZW5kZWRsaXN0KGZhbHNlKVxyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZCgnem9vbVBvcHVwJykgem9vbVBvcHVwOiBFbGVtZW50UmVmO1xyXG4gIG9wZW5Nb2RlbChkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLnpvb21Qb3B1cCwgeyBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ3hsJyB9KTtcclxuICAgIHRoaXMudmlld0ltYWdlID0gZGF0YTtcclxuICB9XHJcbiAgZ2V0R3JpZENvbHVtbnMobGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKGxlbmd0aCA9PT0gMSkgcmV0dXJuICcxZnInO1xyXG4gICAgaWYgKGxlbmd0aCA9PT0gMiB8fCBsZW5ndGggPT09IDQgfHwgbGVuZ3RoID09PSAzKSByZXR1cm4gJ3JlcGVhdCgyLCAxZnIpJztcclxuICAgIGlmIChsZW5ndGggPT09IDUgfHwgbGVuZ3RoID09PSA2KSByZXR1cm4gJ3JlcGVhdCgzLCAxZnIpJztcclxuICAgIC8vIGlmIChsZW5ndGggPT09IDcgfHwgbGVuZ3RoID09PSA4KSByZXR1cm4gJ3JlcGVhdCg0LCAxZnIpJztcclxuICAgIC8vIGlmIChsZW5ndGggPD0gMTApIHJldHVybiAncmVwZWF0KDUsIDFmciknO1xyXG4gICAgcmV0dXJuICdyZXBlYXQoMywgMWZyKSc7XHJcbiAgfVxyXG5cclxuICBnZXRHcmlkUm93SGVpZ2h0KGxlbmd0aDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmIChsZW5ndGggPD0gMikgcmV0dXJuICc0NTBweCc7XHJcbiAgICByZXR1cm4gJzIyMHB4JztcclxuICB9XHJcbiAgaGFzUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBxdWVzdGlvbj8uYW5zd2Vycz8uc29tZSgoYTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlZiA9IGEucmVmZXJlbmNlSW1hZ2U7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgKEFycmF5LmlzQXJyYXkocmVmKSAmJiByZWYubGVuZ3RoID4gMCkgfHxcclxuICAgICAgICAodHlwZW9mIHJlZiA9PT0gJ3N0cmluZycgJiYgcmVmLnRyaW0oKSAhPT0gJycpXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGhhc0NoZWNrbGlzdFJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbjogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gcXVlc3Rpb24/LmFuc3dlcnM/LnNvbWUoKGE6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCByZWYgPSBhLnJlZmVyZW5jZUltYWdlO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIChBcnJheS5pc0FycmF5KHJlZikgJiYgcmVmLmxlbmd0aCA+IDApIHx8XHJcbiAgICAgICAgKHR5cGVvZiByZWYgPT09ICdzdHJpbmcnICYmIHJlZi50cmltKCkgIT09ICcnKVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgaGFzUXVlc3Rpb25SZWZlcmVuY2VJbWFnZXMocXVlc3Rpb246IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2U/Lmxlbmd0aCA+IDAgJiZcclxuICAgICAgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZVswXSAhPT0gJyc7XHJcbiAgfVxyXG5cclxuICBpc1ZhbGlkSW1hZ2UoaXRlbTogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gaXRlbSAmJiBpdGVtICE9PSAnJyAmJiBpdGVtICE9PSBudWxsO1xyXG4gIH1cclxuICBzZWxlY3RlZEltYWdlVXJsOiBhbnkgPSAnJztcclxuICBzZWxlY3RlZEltYWdlTmFtZTogc3RyaW5nID0gJyc7XHJcbiAgY3VycmVudEltYWdlSW5kZXg6IG51bWJlciA9IDA7XHJcbiAgaW1hZ2VMaXN0OiBzdHJpbmdbXSA9IFtdO1xyXG4gIGltYWdlTmFtZUxpc3Q6IHN0cmluZ1tdID0gW107XHJcbiAgb3BlbkltYWdlUG9wdXAxKGltYWdlczogc3RyaW5nW10sIGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuaW1hZ2VMaXN0ID0gaW1hZ2VzO1xyXG4gICAgdGhpcy5jdXJyZW50SW1hZ2VJbmRleCA9IGluZGV4O1xyXG4gICAgdGhpcy5zZWxlY3RlZEltYWdlVXJsID0gdGhpcy5pbWFnZUxpc3Q7XHJcbiAgICBjb25zdCBtb2RhbDogYW55ID0gbmV3ICh3aW5kb3cgYXMgYW55KS5ib290c3RyYXAuTW9kYWwoXHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWFnZU1vZGFsMScpXHJcbiAgICApO1xyXG4gICAgbW9kYWwuc2hvdygpO1xyXG4gIH1cclxuICBvcGVuSW1hZ2VQb3B1cChpbWFnZXM6IHN0cmluZ1tdLCBuYW1lczogc3RyaW5nW10sIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuaW1hZ2VMaXN0ID0gaW1hZ2VzO1xyXG4gICAgdGhpcy5pbWFnZU5hbWVMaXN0ID0gbmFtZXM7XHJcbiAgICB0aGlzLmN1cnJlbnRJbWFnZUluZGV4ID0gaW5kZXg7XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZEltYWdlVXJsID0gdGhpcy5pbWFnZUxpc3RbdGhpcy5jdXJyZW50SW1hZ2VJbmRleF07XHJcbiAgICB0aGlzLnNlbGVjdGVkSW1hZ2VOYW1lID0gdGhpcy5pbWFnZU5hbWVMaXN0W3RoaXMuY3VycmVudEltYWdlSW5kZXhdO1xyXG4gICAgLy8gY29uc29sZS5sb2coXCIxMjMyMTMxM1wiLCB0aGlzLmltYWdlTGlzdCwgaW5kZXgpXHJcbiAgICBjb25zdCBtb2RhbDogYW55ID0gbmV3ICh3aW5kb3cgYXMgYW55KS5ib290c3RyYXAuTW9kYWwoXHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWFnZU1vZGFsJylcclxuICAgICk7XHJcbiAgICBtb2RhbC5zaG93KCk7XHJcbiAgfVxyXG5cclxuICBuYXZpZ2F0ZUltYWdlKGRpcmVjdGlvbjogJ3ByZXYnIHwgJ25leHQnKTogdm9pZCB7XHJcbiAgICBpZiAoZGlyZWN0aW9uID09PSAncHJldicgJiYgdGhpcy5jdXJyZW50SW1hZ2VJbmRleCA+IDApIHtcclxuICAgICAgdGhpcy5jdXJyZW50SW1hZ2VJbmRleC0tO1xyXG4gICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09ICduZXh0JyAmJiB0aGlzLmN1cnJlbnRJbWFnZUluZGV4IDwgdGhpcy5pbWFnZUxpc3QubGVuZ3RoIC0gMSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRJbWFnZUluZGV4Kys7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZEltYWdlVXJsID0gdGhpcy5pbWFnZUxpc3RbdGhpcy5jdXJyZW50SW1hZ2VJbmRleF07XHJcbiAgICB0aGlzLnNlbGVjdGVkSW1hZ2VOYW1lID0gdGhpcy5pbWFnZU5hbWVMaXN0W3RoaXMuY3VycmVudEltYWdlSW5kZXhdO1xyXG5cclxuICB9XHJcblxyXG4gIGdldEltYWdlVXJscyh1c2VyQW5zd2VyczogYW55W10pOiBzdHJpbmdbXSB7XHJcbiAgICAvLyByZXR1cm4gdXNlckFuc3dlcnMubWFwKGEgPT4gdGhpcy5lbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgYS5hbnN3ZXIpO1xyXG4gICAgLy8gPyB0aGlzLnNhbml0aXplVXJsKHRoaXMuZW52aXJvbm1lbnQudHJheFJ1bkFpQ0ROICsgYS5ydW5BSUFuc3dlcikgXHJcbiAgICByZXR1cm4gdXNlckFuc3dlcnMubWFwKGEgPT4gYS5ydW5BSUFuc3dlclxyXG4gICAgICA/IHRoaXMuZW52aXJvbm1lbnQudHJheFJ1bkFpQ0ROICsgYS5ydW5BSUFuc3dlclxyXG4gICAgICA6IHRoaXMuZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGEuYW5zd2VyXHJcbiAgICApLmZpbHRlcih1cmwgPT4gdXJsKTtcclxuICB9XHJcblxyXG4gIGdldEltYWdlTmFtZXModXNlckFuc3dlcnM6IGFueVtdKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIHVzZXJBbnN3ZXJzLm1hcChhID0+IGEuYW5zd2VyKTtcclxuICB9XHJcblxyXG4gIGdldFJlZmNoZWNrbGlzdEltYWdlVXJscyh1c2VyQW5zd2VyczogYW55W10pOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdXNlckFuc3dlcnMubWFwKGEgPT4gdGhpcy5lbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgYS5yZWZlcmVuY2VJbWFnZSk7XHJcbiAgfVxyXG5cclxuICBnZXRSZWZjaGVja2xpc3RJbWFnZU5hbWVzKHVzZXJBbnN3ZXJzOiBhbnlbXSk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiB1c2VyQW5zd2Vycy5tYXAoYSA9PiBhLnJlZmVyZW5jZUltYWdlKTtcclxuICB9XHJcblxyXG4gIGdldFF1c3RSZWZjaGVja2xpc3RJbWFnZVVybHModXNlckFuc3dlcnM6IGFueVtdKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIHVzZXJBbnN3ZXJzLm1hcChhID0+IHRoaXMuZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGEucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSk7XHJcbiAgfVxyXG5cclxuICBnZXRRdXN0UmVmY2hlY2tsaXN0SW1hZ2VOYW1lcyh1c2VyQW5zd2VyczogYW55W10pOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdXNlckFuc3dlcnMubWFwKGEgPT4gYS5xdWVzdGlvblJlZmVyZW5jZUltYWdlKTtcclxuICB9XHJcbiAgZ2V0UmVmSW1hZ2VVcmxzKHVzZXJBbnN3ZXJzOiBhbnlbXSk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiB1c2VyQW5zd2Vycy5tYXAoYSA9PiB0aGlzLmVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBhKTtcclxuICB9XHJcblxyXG4gIGdldFJlZkltYWdlTmFtZXModXNlckFuc3dlcnM6IGFueVtdKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIHVzZXJBbnN3ZXJzLm1hcChhID0+IGEpO1xyXG4gIH1cclxuXHJcbiAgZG93bmxvYWRWaWRlbyhmaWxlTmFtZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLmVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBmaWxlTmFtZTtcclxuICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBhLmhyZWYgPSB1cmw7XHJcbiAgICBhLmRvd25sb2FkID0gZmlsZU5hbWUuc3BsaXQoJy8nKS5wb3AoKSB8fCAndmlkZW8ubXA0JzsgIC8vIGV4dHJhY3QgZmlsZSBuYW1lXHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xyXG4gICAgYS5jbGljaygpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhKTtcclxuICB9XHJcblxyXG4gIGhhc011bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZXMocXVlc3Rpb246IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHF1ZXN0aW9uLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZT8ubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIGdldE11bHRpUmVmSW1hZ2VVcmxzKHVzZXJBbnN3ZXJzOiBhbnlbXSk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiB1c2VyQW5zd2Vycy5tYXAoYSA9PiB0aGlzLmVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBhLmltYWdlVVJMKTtcclxuICB9XHJcblxyXG4gIG9wZW5NdWx0aUltYWdlUG9wdXAoaW1hZ2VzOiBzdHJpbmdbXSwgbmFtZXM6IHN0cmluZ1tdLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmltYWdlTGlzdCA9IGltYWdlcztcclxuICAgIHRoaXMuaW1hZ2VOYW1lTGlzdCA9IG5hbWVzO1xyXG4gICAgdGhpcy5jdXJyZW50SW1hZ2VJbmRleCA9IGluZGV4O1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRJbWFnZVVybCA9IHRoaXMuaW1hZ2VMaXN0W3RoaXMuY3VycmVudEltYWdlSW5kZXhdO1xyXG4gICAgdGhpcy5zZWxlY3RlZEltYWdlTmFtZSA9IHRoaXMuaW1hZ2VOYW1lTGlzdFt0aGlzLmN1cnJlbnRJbWFnZUluZGV4XTtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwiMTIzMjEzMTNcIiwgdGhpcy5pbWFnZUxpc3QsIGluZGV4KVxyXG4gICAgY29uc3QgbW9kYWw6IGFueSA9IG5ldyAod2luZG93IGFzIGFueSkuYm9vdHN0cmFwLk1vZGFsKFxyXG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1hZ2VNb2RhbCcpXHJcbiAgICApO1xyXG4gICAgbW9kYWwuc2hvdygpO1xyXG4gIH1cclxuXHJcbiAgaGFzTXVsdGlSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb246IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHF1ZXN0aW9uLm11bHRpUmVmZXJlbmNlSW1hZ2U/Lmxlbmd0aCA+IDA7XHJcbiAgfVxyXG5cclxuICBoYXNJbWFnZU11bHRpUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBxdWVzdGlvbj8uYW5zd2Vycz8uc29tZSgoYTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlZiA9IGEubXVsdGlSZWZlcmVuY2VJbWFnZTtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICAoQXJyYXkuaXNBcnJheShyZWYpICYmIHJlZi5sZW5ndGggPiAwKSB8fFxyXG4gICAgICAgICh0eXBlb2YgcmVmID09PSAnc3RyaW5nJyAmJiByZWYudHJpbSgpICE9PSAnJylcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaGFzSW1hZ2VBbnN3ZXIocXVlc3Rpb246IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHF1ZXN0aW9uPy51c2VyQW5zd2VyPy5zb21lKChhOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgcmVmID0gYS5hbnN3ZXI7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgKEFycmF5LmlzQXJyYXkocmVmKSAmJiByZWYubGVuZ3RoID4gMCkgfHxcclxuICAgICAgICAodHlwZW9mIHJlZiA9PT0gJ3N0cmluZycgJiYgcmVmLnRyaW0oKSAhPT0gJycpXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNoZWNrRGV0ZWN0aW9uU3RhdHVzKHJ1bkFJRGF0YT86IGFueVtdKTogeyBrZXlQcmVzZW50OiBib29sZWFuOyBrZXlWYWx1ZTogYm9vbGVhbiB9IHtcclxuICAgIGxldCBrZXlQcmVzZW50ID0gZmFsc2U7XHJcbiAgICBsZXQga2V5VmFsdWUgPSBmYWxzZTtcclxuXHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocnVuQUlEYXRhKSkge1xyXG4gICAgICByZXR1cm4geyBrZXlQcmVzZW50LCBrZXlWYWx1ZSB9O1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcnVuQUlEYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChydW5BSURhdGFbaV0/LmxhYmxlTmFtZSA9PT0gJ2RldGVjdGlvblN0YXR1cycpIHtcclxuICAgICAgICBrZXlQcmVzZW50ID0gdHJ1ZTtcclxuICAgICAgICBrZXlWYWx1ZSA9IHJ1bkFJRGF0YVtpXT8udmFsdWU/LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnO1xyXG4gICAgICAgIHJldHVybiB7IGtleVByZXNlbnQsIGtleVZhbHVlIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB7IGtleVByZXNlbnQsIGtleVZhbHVlIH07IC8vIE5vIGRldGVjdGlvblN0YXR1cyBmb3VuZFxyXG4gIH1cclxuXHJcbiAgc2FuaXRpemVVcmwodXJsOiBzdHJpbmcpOiBTYWZlVXJsIHtcclxuICAgIC8vIEVuY29kZSBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gdGhlIFVSTFxyXG4gICAgLy8gY29uc3QgZW5jb2RlZFVybCA9IGVuY29kZVVSSSh1cmwpO1xyXG5cclxuICAgIC8vIGNvbnN0IGVuY29kZWRVcmwgPSBlbmNvZGVVUkkodXJsKS5yZXBsYWNlKC9cXD8vZywgJyUzRicpO1xyXG4gICAgLy8gcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwoZW5jb2RlZFVybCk7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgcGFydHMgPSB1cmwuc3BsaXQoJy8nKTtcclxuICAgICAgY29uc3QgZG9tYWluID0gcGFydHMuc2xpY2UoMCwgMykuam9pbignLycpO1xyXG4gICAgICBjb25zdCBwYXRoID0gcGFydHMuc2xpY2UoMykubWFwKHAgPT4gZW5jb2RlVVJJQ29tcG9uZW50KHApKS5qb2luKCcvJyk7XHJcbiAgICAgIGNvbnN0IGVuY29kZWRVcmwgPSBgJHtkb21haW59LyR7cGF0aH1gO1xyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwoZW5jb2RlZFVybCk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKHVybCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtdWx0aUltYWdlQ2hlY2tEZXRlY3Rpb25TdGF0dXModXNlckFuc3dlcnM/OiBhbnlbXSk6IHsga2V5UHJlc2VudDogYm9vbGVhbjsga2V5VmFsdWU6IGJvb2xlYW4gfSB7XHJcbiAgICBsZXQga2V5UHJlc2VudCA9IGZhbHNlO1xyXG4gICAgbGV0IGtleVZhbHVlID0gZmFsc2U7XHJcblxyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHVzZXJBbnN3ZXJzKSkge1xyXG4gICAgICByZXR1cm4geyBrZXlQcmVzZW50LCBrZXlWYWx1ZSB9O1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAoY29uc3QgaXRlbSBvZiB1c2VyQW5zd2Vycykge1xyXG4gICAgICBpZiAoaXRlbS5ydW5BSURhdGEgJiYgQXJyYXkuaXNBcnJheShpdGVtLnJ1bkFJRGF0YSkpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGl0ZW0ucnVuQUlEYXRhKSB7XHJcbiAgICAgICAgICBpZiAoZW50cnkubGFibGVOYW1lID09PSAnZGV0ZWN0aW9uU3RhdHVzJykge1xyXG4gICAgICAgICAgICBrZXlQcmVzZW50ID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYgKGVudHJ5LnZhbHVlID09PSAnRmFsc2UnKSB7XHJcbiAgICAgICAgICAgICAga2V5VmFsdWUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICByZXR1cm4geyBrZXlQcmVzZW50LCBrZXlWYWx1ZSB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB1c2VyQW5zd2Vycy5sZW5ndGg7IGkrKykge1xyXG4gICAgLy8gICBpZihBcnJheS5pc0FycmF5KHVzZXJBbnN3ZXJzW2ldLnJ1bkFJRGF0YSkpe1xyXG4gICAgLy8gICAgIGxldCBydW5BSURhdGFzID0gdXNlckFuc3dlcnNbaV0ucnVuQUlEYXRhO1xyXG4gICAgLy8gICAgIGZvciAobGV0IGogPSAwOyBqIDwgcnVuQUlEYXRhcy5sZW5ndGg7IGorKykge1xyXG4gICAgLy8gICAgICAgaWYgKHJ1bkFJRGF0YXNbal0/LmxhYmxlTmFtZSA9PT0gJ2RldGVjdGlvblN0YXR1cycpIHtcclxuICAgIC8vICAgICAgICAga2V5UHJlc2VudCA9IHRydWU7XHJcbiAgICAvLyAgICAgICAgIGtleVZhbHVlID0gcnVuQUlEYXRhc1tqXT8udmFsdWU/LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhbHNlJztcclxuICAgIC8vICAgICAgICAgcmV0dXJuIHsga2V5UHJlc2VudCwga2V5VmFsdWUgfTtcclxuICAgIC8vICAgICAgIH1cclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgIH0gICAgICBcclxuICAgIC8vIH1cclxuICAgIHJldHVybiB7IGtleVByZXNlbnQsIGtleVZhbHVlIH07IC8vIE5vIGRldGVjdGlvblN0YXR1cyBmb3VuZFxyXG4gIH1cclxuXHJcbn0iLCI8ZGl2ICpuZ0lmPVwibm90aWZ5Q291bnQ+MFwiIGNsYXNzPVwiaC14bC0xMDAgZmxleC1yb3cgZmxleC1zdGFjayBmbGV4LXdyYXAgcC0yXCI+XHJcbiAgICA8IS0tIHRvYXN0IGNhcmQgc3RhcnRzIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cInRvYXN0Y2FyZCBjb2wtbWQtMTIgbWItNFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHctMTAwXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9hc3R0ZXh0IGQtYmxvY2tcIj48c3BhbiBjbGFzcz1cIm1lLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAxNiAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOS4xNDIzNCAyLjRWMS42ODc1QzkuMTQyMzQgMS4wMzE3OCA4LjYzMTY2IDAuNSA3Ljk5OTU1IDAuNUM3LjM2NzQ0IDAuNSA2Ljg1Njc1IDEuMDMxNzggNi44NTY3NSAxLjY4NzVWMi40QzQuMjE3NjEgMi45NTAzMyAyLjI4NTU4IDUuMzQ2NDkgMi4yODU1OCA4LjIxODc1VjguOTE2NDFDMi4yODU1OCAxMC42NjQzIDEuNjY5MTggMTIuMzQ1MyAwLjU1MzUzMiAxMy42NTE2TDAuMjg4NjkgMTMuOTU5NkMtMC4wMTAzMDQ0IDE0LjMxMjEgLTAuMDg0MDM5NiAxNC44MDk0IDAuMTAwMzA3IDE1LjIzNjFDMC4yODQ2NTQgMTUuNjYyOSAwLjY5MjgxIDE1LjkzNzUgMS4xNDI3OSAxNS45Mzc1SDE0Ljg1NjNDMTUuMzA2MyAxNS45Mzc1IDE1LjcxMzQgMTUuNjYyOSAxNS44OTkxIDE1LjIzNjFDMTYuMDg0OCAxNC44MDk0IDE2LjAwOTggMTQuMzEyMSAxNS43MDk4IDEzLjk1OTZMMTUuNDQ1NiAxMy42NTE2QzE0LjMzMTMgMTIuMzQ1MyAxMy43MTM1IDEwLjY2NDMgMTMuNzEzNSA4LjkxNjQxVjguMjE4NzVDMTMuNzEzNSA3Ljk0MTI1IDEzLjY5NTIgNy42NjgxOSAxMy42NTk3IDcuNDAwODFDMTMuMjY3NiA3LjU0NTc2IDEyLjg0MzIgNy42MjUgMTIuNCA3LjYyNUMxMC40MTE4IDcuNjI1IDguOCA2LjAzMDAxIDguOCA0LjA2MjVDOC44IDMuNDY3NzggOC44ODE5MyAyLjg5Mjg5IDkuMTQyMzQgMi40QzkuMTY0MTcgMi40MDQ2MSA5LjEyMDYxIDIuMzk1MTQgOS4xNDIzNCAyLjRaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzAwQTNGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi4zODE3OCAxOC44MDYxQzYuODEwMzMgMTkuMjUxNCA3LjM5MjQ0IDE5LjUgNy45OTk1NSAxOS41QzguNTc0NTIgMTkuNSA5LjE4ODc3IDE5LjI1MTQgOS42MTczMiAxOC44MDYxQzEwLjA0NTkgMTguMzYwNyAxMC4yODUxIDE3LjcyMjUgMTAuMjg1MSAxNy4xMjVINS43MTM5NkM1LjcxMzk2IDE3LjcyMjUgNS45NTMyMyAxOC4zNjA3IDYuMzgxNzggMTguODA2MVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMDBBM0ZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxM1wiIGN5PVwiMy41XCIgcj1cIjNcIiBmaWxsPVwiI0YwNDQzOFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5OZXcgRGV0ZWN0aW9uIEZvdW5kISBSZWZyZXNoIE5vdyB0byB2aWV3IG5ldyBkZXRlY3Rpb248L3NwYW4+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwicmVmcmVzaG5vdygpXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1vdXRsaW5lIGJ0biBhbGlnbi1pdGVtcy1lbmQgdGV4dC1ub3dyYXAgbXMtNCBjdXJzb3ItcG9pbnRlclwiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xMjE2NV82Mjc4MSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTkuMTY3MiAzLjMzMTcyVjguMzMxNzJNMTkuMTY3MiA4LjMzMTcySDE0LjE2NzJNMTkuMTY3MiA4LjMzMTcyTDE1LjMwODkgNC42OTgzOEMxNC4xNTk0IDMuNTQ4MTcgMTIuNjY3MiAyLjgwMjcxIDExLjA1NzIgMi41NzQzNEM5LjQ0NzE2IDIuMzQ1OTcgNy44MDY1MyAyLjY0NzA2IDYuMzgyNTEgMy40MzIyNUM0Ljk1ODUgNC4yMTc0NCAzLjgyODI2IDUuNDQ0MTggMy4xNjIxIDYuOTI3NjFDMi40OTU5NSA4LjQxMTA0IDIuMzI5OTcgMTAuMDcwOCAyLjY4OTE5IDExLjY1NjhDMy4wNDg0IDEzLjI0MjcgMy45MTMzNSAxNC42NjkgNS4xNTM2OCAxNS43MjA2QzYuMzk0MDEgMTYuNzcyMiA3Ljk0MjU0IDE3LjM5MjIgOS41NjU5IDE3LjQ4NzJDMTEuMTg5MyAxNy41ODIyIDEyLjc5OTUgMTcuMTQ3IDE0LjE1NCAxNi4yNDcxQzE1LjUwODUgMTUuMzQ3MyAxNi41MzM5IDE0LjAzMTYgMTcuMDc1NiAxMi40OTg0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzEyMTY1XzYyNzgxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPjxzcGFuIGNsYXNzPVwicmVmcmVzaHRleHQgbXMtMlwiPjwvc3Bhbj4gUmVmcmVzaCBOb3cgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwiZ2FsbGVyeS1jYXJkIHBvXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyIG1iLTRcIj5HYWxsZXJ5PC9kaXY+XHJcblxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJnYWxsZXJ5Rm9ybVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNvbC1tZC0zIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cInRvcDogMjAlO1wiIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNCB6LTJcIiBzdHlsZT1cIm1pbi13aWR0aDogMjYwcHggIWltcG9ydGFudDtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWQgW2Ryb3BzXT1cIidkb3duJ1wiIFtvcGVuc109XCIncmlnaHQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWx3YXlzU2hvd0NhbGVuZGFyc109XCJmYWxzZVwiIFtrZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlXT1cInRydWVcIiBbc2hvd0NhbmNlbF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVSYW5nZVwiIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZWNoYW5nZSgkZXZlbnQpXCIgKGNsaWNrKT1cInJlc2V0VmFsaWRhdGlvbigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RhcnREYXRlQ2hhbmdlZCk9XCJvblN0YXJ0RGF0ZUNoYW5nZSgkZXZlbnQpXCIgW2lzQ3VzdG9tRGF0ZV09XCJpc0N1c3RvbURhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvQXBwbHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NLVlZWVknLCBmaXJzdERheTogMSwgbW9udGhOYW1lczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImRhdGVyYW5nZVwiIFtyZWFkb25seV09XCJ0cnVlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBtYi00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItc2luZ2xlLXNlbGVjdCBbaXRlbXNdPVwiY2hlY2tsaXN0c1wiIFttdWx0aV09XCJmYWxzZVwiIFtzZWFyY2hGaWVsZF09XCInY2hlY2tMaXN0TmFtZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkRmllbGRdPVwiJ19pZCdcIiAoc2VsZWN0ZWQpPVwiY2hlY2tsaXN0TmFtZWNoYW5nZSgkZXZlbnQsZmFsc2UpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZFZhbHVlc109XCJbe2NoZWNrTGlzdE5hbWU6Z2FsbGVyeUZvcm0uZ2V0KCdjaGVja2xpc3ROYW1lJyk/LnZhbHVlfV1cIj48L2xpYi1zaW5nbGUtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgbWItNFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhY2Vob2xkZXItb3ZlcmxheVwiICpuZ0lmPVwiIShnYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy52YWx1ZT8ubGVuZ3RoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBTdG9yZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1zdG9yZXMtc2VsZWN0IFtpdGVtc109XCJzdG9yZUxpc3RcIiBbZGlzYWJsZWRdPVwiZmFsc2VcIiBbbXVsdGldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlYXJjaEZpZWxkXT1cIidzdG9yZU5hbWUnXCIgW2lkRmllbGRdPVwiJ3N0b3JlSWQnXCIgKHNlbGVjdGVkKT1cIm9uU3RvcmVTZWxlY3QoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkVmFsdWVzXT1cImdhbGxlcnlGb3JtLmdldCgnc3RvcmVMaXN0Jyk/LnZhbHVlXCI+PC9saWItc3RvcmVzLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwib25TdWJtaXQoKVwiIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBweC00IFwiPjxzcGFuPkFwcGx5PC9zcGFuPjwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjYXJkIG15LTJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWFpbi1jb250YWluZXIgbXktNSBcIj5cclxuXHJcbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJzaG93c2lkZW5hdiA/ICdjb2wtbWQtNCBsZWZ0LXNpZGViYXInOidkLW5vbmUnXCIgY2xhc3M9XCJoLTY1MHB4XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZSBoLTY1MHB4IHNjcm9sbC15XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2xpc3QtbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tsaXN0LXRpdGxlXCI+e3tjaGVja2xpc3ROYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdC10ZXh0XCI+e3tjaGVja0xpc3REZXNjcmlwdGlvbn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cInJvdyBsb2FkZXIgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub0RhdGEmJnNlbGVjdCA9PT0gJ2N1c3RvbScgfHwgbm9EYXRhJiZzZWxlY3QgPT09ICd0YXNrJ1wiIGNsYXNzPVwicm93IG10LTIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbXQtMjAgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwidy03NSBoLTMwMHB4XCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhMS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXRpdGxlIG10LTBcIj5ObyBkYXRhIGZvdW5kPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS1zdWJcIj5UaGVyZSBpcyBubyByZXN1bHQgZm9yIHRoaXMgY2hlY2tsaXN0PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub0RhdGEmJnNlbGVjdCAhPT0gJ2N1c3RvbScmJnNlbGVjdCAhPT0gJ3Rhc2snXCIgY2xhc3M9XCJyb3cgbXQtMjBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBtdC0yMCBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IG10LTIwIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctc3JjIG10LTUgdy00MFwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTIuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS10aXRsZVwiPk5vIERldGVjdGlvbnMgZm91bmQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXN1YlwiPlRoZXJlIGlzIG5vIGJyZWFjaGVzIGZvciB0aGUgc2VsZWN0ZWQgcGVyaW9kPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwiIW5vRGF0YSAmJiAhbG9hZGluZ1wiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdCA9PT0gJ2N1c3RvbSd8fHNlbGVjdCA9PT0gJ3Rhc2snXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmQgbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy0yNSBtZS0zIGJ0bi1yZXNpemVcIiAoY2xpY2spPVwidmlld0NoZWNrbGlzdHMoKVwiPiBSZXNldCA8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSB3LTI1IG1lLTMgYnRuLXJlc2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRTZWN0aW9uLmxlbmd0aD4wfHx0ZW1wc2VsZWN0ZWRTZWN0aW9uLmxlbmd0aD4wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uY2hlY2tsaXN0cmVzZXQoKVwiPiBSZXNldCA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwic2VsZWN0ZWRTZWN0aW9uLmxlbmd0aD4wfHx0ZW1wc2VsZWN0ZWRTZWN0aW9uLmxlbmd0aD4wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdy0yNSAgYnRuLXJlc2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RzaW5nbGVxdWVzdGlvbigpXCI+QXBwbHk8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTZcIiBbbmdDbGFzc109XCJzZWxlY3RlZFNlY3Rpb24ubGVuZ3RoPT09MCA/ICd2aWV3LWFsbCc6J3ZpZXctcXVlc3Rpb25zJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCIgKGNsaWNrKT1cIm9uY2hlY2tsaXN0cmVzZXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpZXcgQWxsIEFuc3dlcnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTJcIiAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBjaGVja2xpc3REYXRhOyBsZXQgaT1pbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCIgKGNsaWNrKT1cImFjY29yZGlhbihpKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtNCBmdy1ib2xkIHNlY3Rpb25cIiAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGU9PT0nY2hlY2tsaXN0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzZWN0aW9uLnNlY3Rpb25OYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzPVwibXgtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiBbbmdDbGFzc109XCJ7J3JvdGF0ZScgOiBzaG93ICE9PSBpfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNVwiIGhlaWdodD1cIjI1XCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01IDcuNUwxMCAxMi41TDE1IDcuNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvdz09PWlcIiBjbGFzcz1cInF1ZXN0aW9uLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjZGtEcm9wTGlzdCBbY2RrRHJvcExpc3REYXRhXT1cInNlY3Rpb24ucXVlc3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBxdWVzdGlvbiBvZiBzZWN0aW9uLnF1ZXN0aW9ucztsZXQgaj1pbmRleDtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IG15LTIgcS1idG5cIiBjZGtEcmFnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImxhYmVsXCIgWyhuZ01vZGVsKV09XCJxdWVzdGlvbi5jaGVja2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkUXVlc3Rpb24oJGV2ZW50LHNlY3Rpb24scXVlc3Rpb24pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyIG10LTIgbWUtNFwiIHR5cGU9XCJjaGVja2JveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0YWJsZWNvbnRlbnRcIiBbbmdDbGFzc109XCJxdWVzdGlvbj8uY2hlY2tlZCA/ICd2aWV3LWFsbCc6JydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3txdWVzdGlvbi5xbm99fSAuIHt7cXVlc3Rpb24ucW5hbWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPC9kaXY+ICAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbWJpbmVkQ2hlY2tsaXN0LmluY2x1ZGVzKHNlbGVjdClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWVuZCBtdC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy0yNSBtZS0zIGJ0bi1yZXNpemVcIiAoY2xpY2spPVwib25yZXNldCgpXCI+IFJlc2V0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTI1ICBidG4tcmVzaXplXCIgKGNsaWNrKT1cIm9udmlldygpXCI+QXBwbHk8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duc2VsZWN0IGgtOTAwcHggc2Nyb2xsLXlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1sZWZ0IFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdEFsbCA/ICdiYWNrZ3JvdW5kQm9yZGVyJzond2l0aG91dGJhY2tncm91bmQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXIgbWUtNFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdEFsbFwiIChjbGljayk9XCJzZWxlY3RBbGxTdG9yZSgkZXZlbnQpXCI+IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzZWxlY3RBbGwgPyAndXNhZ2UtZGV0ZWN0aW9uJzondXNhZ2UtdGV4dCdcIj5TZWxlY3QgQWxsPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gZHJvcGRvd25iZyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktNFwiICpuZ0Zvcj1cImxldCBsaXN0IG9mIG1vYmlsZXVzYWdlRGF0YUxpc3Q7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAoY2hhbmdlKT1cInVwZGF0ZUNoZWNrKCRldmVudCxsaXN0KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJsaXN0LmNoZWNrZWQgPyAnYmFja2dyb3VuZEJvcmRlcic6J3dpdGhvdXRiYWNrZ3JvdW5kJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwibGFiZWx7e2l9fVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlciBtZS00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBbKG5nTW9kZWwpXT1cImxpc3QuY2hlY2tlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImxhYmVse3tpfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImxpc3QuY2hlY2tlZCA/ICd1c2FnZS1kZXRlY3Rpb24nOid1c2FnZS10ZXh0J1wiPnt7bGlzdD8uc3RvcmVOYW1lfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IGRldGVjdGlvbnJpZ2h0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImxpc3QuZGV0ZWN0aW9uXCI+e3tsaXN0LmRldGVjdGlvbn19IERldGVjdGlvbnM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dzaWRlbmF2XCIgKGNsaWNrKT1cInNpZGVuYXYoKVwiIGNsYXNzPVwiYmFja0J1dHRvbnJpZ2h0IHRleHQtY2VudGVyIHB0LTEgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI4XCIgaGVpZ2h0PVwiMjhcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMSAxN0w2IDEyTDExIDdNMTggMTdMMTMgMTJMMTggN1wiIHN0cm9rZT1cIiMxMDE4MjhcIiBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJzaG93c2lkZW5hdiA/ICdjb2wtbWQtOCBib3JkZXIgYm9yZGVyLWJvdHRvbS0wIGJvcmRlci10b3AtMCBib3JkZXItbGVmdCBib3JkZXItNSByaWdodC1zaWRlYmFyJzonY29sLW1kLTEyJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgaC0xMDAwcHggc2Nyb2xsLXlcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0gKHNlbGVjdCA9PT0gJ2N1c3RvbScgfHwgc2VsZWN0ID09PSAndGFzayd8fHNlbGVjdCA9PT0gJ2NsZWFuaW5nJ3x8c2VsZWN0ID09PSdzY3J1bSd8fHNlbGVjdCA9PT0nc3RvcmVvcGVuYW5kY2xvc2UnfHxzZWxlY3QgPT09J2ludmVudG9yeWNvdW50J3x8c2VsZWN0ID09PSdjYXJzYXR0ZW5kZWQnfHxzZWxlY3QgPT09J251bWJlcnBsYXRlaW5mbycpIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wICBweC0wIG15LTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiKHNlbGVjdCA9PT0gJ2N1c3RvbScgfHwgc2VsZWN0ID09PSAndGFzaycgfHwgaGVhZGVyRmlsdGVycz8uY2xpZW50ID09PSAnNDUyJyB8fCBoZWFkZXJGaWx0ZXJzPy5jbGllbnQgPT09ICc0MzAnKSAmJiAhdmlld2xvYWRpbmcgJiYgIXZpZXdub0RhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDMgKm5nSWY9XCIhc2hvd3NpbmdsZSB8fCAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbyd8fCFhbGxhcHByb3ZhbFN0YXR1c1wiPjwvaDM+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgbS0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93c2luZ2xlJiYoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgIT09ICd0YW5nbycmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X1Rhc2tfaXNFZGl0JiZhbGxhcHByb3ZhbFN0YXR1c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwic2VsZWN0QWxsVGFza1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkQWxsVGFzaygkZXZlbnQsdmlld0NoZWNrbGlzdHNEYXRhPy5jaGVja2xpc3RBbnN3ZXJzWzBdLHZpZXdDaGVja2xpc3RzRGF0YT8uY2hlY2tsaXN0QW5zd2Vyc1swXS5xdWVzdGlvbkFuc3dlclswXS5xdWVzdGlvbnNbMF0sdmlld0NoZWNrbGlzdHNEYXRhPy5jaGVja2xpc3RBbnN3ZXJzWzBdPy5jaGVja2xpc3RJbmZvLHZpZXdDaGVja2xpc3RzRGF0YT8uY2hlY2tsaXN0QW5zd2Vyc1swXS5xdWVzdGlvbkFuc3dlclswXSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHZhbHVlPVwiXCIgaWQ9XCJmbGV4Q2hlY2tEZWZhdWx0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJtcy0yXCIgZm9yPVwiZmxleENoZWNrRGVmYXVsdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBBbGwgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZFJlY29yZENvdW50XCI+KHt7c2VsZWN0ZWRSZWNvcmRDb3VudH19IFJlY29yZHNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0ZWQpPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWUtNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dzaW5nbGUmJnNlbGVjdCA9PT0nY3VzdG9tJyYmKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlICE9PSAndGFuZ28nJiZ0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGUhPT0ndGFzaydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRVc2Vycy5sZW5ndGg+MHx8c2VsZWN0ZWRTdG9yZXMubGVuZ3RoPjBcIiBjbGFzcz1cImljb24tYnRuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY3JlYXRlTXVsdGlwbGVUYXNrKCd0YXNrJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjY2NTQgMS42Njc5N0g0Ljk5ODdDNC41NTY2NyAxLjY2Nzk3IDQuMTMyNzUgMS44NDM1NiAzLjgyMDE5IDIuMTU2MTJDMy41MDc2MyAyLjQ2ODY4IDMuMzMyMDMgMi44OTI2MSAzLjMzMjAzIDMuMzM0NjRWMTYuNjY4QzMuMzMyMDMgMTcuMTEgMy41MDc2MyAxNy41MzM5IDMuODIwMTkgMTcuODQ2NUM0LjEzMjc1IDE4LjE1OSA0LjU1NjY3IDE4LjMzNDYgNC45OTg3IDE4LjMzNDZIMTQuOTk4N0MxNS40NDA3IDE4LjMzNDYgMTUuODY0NiAxOC4xNTkgMTYuMTc3MiAxNy44NDY1QzE2LjQ4OTggMTcuNTMzOSAxNi42NjU0IDE3LjExIDE2LjY2NTQgMTYuNjY4VjYuNjY3OTdNMTEuNjY1NCAxLjY2Nzk3TDE2LjY2NTQgNi42Njc5N00xMS42NjU0IDEuNjY3OTdWNi42Njc5N0gxNi42NjU0TTkuOTk4NyAxNS4wMDEzVjEwLjAwMTNNNy40OTg3IDEyLjUwMTNIMTIuNDk4N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnRuLXRleHRcIj5DcmVhdGUgVGFzazwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93c2luZ2xlJiZzZWxlY3QgPT09J2N1c3RvbScmJihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSAhPT0ndGFuZ28nfHx0aGlzLnNlbGVjdCA9PT0gJ3Rhc2snJiZzaG93c2luZ2xlJiYoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgIT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRVc2Vycy5sZW5ndGg+MHx8c2VsZWN0ZWRTdG9yZXMubGVuZ3RoPjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjcmVhdGVNdWx0aXBsZVRhc2soJ3JlZG8nKVwiIGNsYXNzPVwiaWNvbi1idG5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMjAgMThcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOS4xNjU0IDIuMzM1MjdWNy4zMzUyN00xOS4xNjU0IDcuMzM1MjdIMTQuMTY1NE0xOS4xNjU0IDcuMzM1MjdMMTUuMjk4NyAzLjcwMTkzQzE0LjQwMzEgMi44MDU4NiAxMy4yOTUxIDIuMTUxMjcgMTIuMDc4IDEuNzk5MjVDMTAuODYxIDEuNDQ3MjIgOS41NzQ2MiAxLjQwOTIzIDguMzM4OTQgMS42ODg4MkM3LjEwMzI1IDEuOTY4NDEgNS45NTg1MyAyLjU1NjQ2IDUuMDExNTkgMy4zOTgxMkM0LjA2NDY0IDQuMjM5NzcgMy4zNDYzNCA1LjMwNzU5IDIuOTIzNyA2LjUwMTkzTTAuODMyMDMxIDE1LjY2ODZWMTAuNjY4Nk0wLjgzMjAzMSAxMC42Njg2SDUuODMyMDNNMC44MzIwMzEgMTAuNjY4Nkw0LjY5ODcgMTQuMzAxOUM1LjU5NDMyIDE1LjE5OCA2LjcwMjM0IDE1Ljg1MjYgNy45MTkzNyAxNi4yMDQ2QzkuMTM2NCAxNi41NTY3IDEwLjQyMjggMTYuNTk0NiAxMS42NTg1IDE2LjMxNTFDMTIuODk0MSAxNi4wMzU1IDE0LjAzODkgMTUuNDQ3NCAxNC45ODU4IDE0LjYwNThDMTUuOTMyOCAxMy43NjQxIDE2LjY1MTEgMTIuNjk2MyAxNy4wNzM3IDExLjUwMTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ0bi10ZXh0XCI+UmVkbzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd3NpbmdsZSYmc2VsZWN0ID09PSdjdXN0b20nJiYoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgIT09J3RhbmdvJ3x8dGhpcy5zZWxlY3QgPT09ICd0YXNrJyYmc2hvd3NpbmdsZSYmKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlICE9PSAndGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkVXNlcnMubGVuZ3RoPjB8fHNlbGVjdGVkU3RvcmVzLmxlbmd0aD4wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZXhwb3J0RGV0KCRldmVudClcIiBjbGFzcz1cImljb24tYnRuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbjxwYXRoIGQ9XCJNOC4xMjUgMTMuMTI1SDE2LjM1NjJMMTQuNzQzOCAxNC43NDM4TDE1LjYyNSAxNS42MjVMMTguNzUgMTIuNUwxNS42MjUgOS4zNzVMMTQuNzQzOCAxMC4yNTYyTDE2LjM1NjIgMTEuODc1SDguMTI1VjEzLjEyNVpcIiBmaWxsPVwiYmxhY2tcIi8+XHJcbjxwYXRoIGQ9XCJNMTMuNzUgOC43NTAwMVY2LjI1MDAxQzEzLjc1MDUgNi4xNjc3NiAxMy43MzQ3IDYuMDg2MjIgMTMuNzAzNiA2LjAxMDA3QzEzLjY3MjUgNS45MzM5MiAxMy42MjY3IDUuODY0NjYgMTMuNTY4OCA1LjgwNjI2TDkuMTkzNzUgMS40MzEyNkM5LjEzNTM1IDEuMzczMzMgOS4wNjYwOSAxLjMyNzUxIDguOTg5OTQgMS4yOTY0QzguOTEzNzkgMS4yNjUzIDguODMyMjUgMS4yNDk1MyA4Ljc1IDEuMjUwMDFIMi41QzIuMTY4NDggMS4yNTAwMSAxLjg1MDU0IDEuMzgxNzEgMS42MTYxMiAxLjYxNjEzQzEuMzgxNyAxLjg1MDU1IDEuMjUgMi4xNjg0OSAxLjI1IDIuNTAwMDFWMTcuNUMxLjI1IDE3LjgzMTUgMS4zODE3IDE4LjE0OTUgMS42MTYxMiAxOC4zODM5QzEuODUwNTQgMTguNjE4MyAyLjE2ODQ4IDE4Ljc1IDIuNSAxOC43NUgxMi41QzEyLjgzMTUgMTguNzUgMTMuMTQ5NSAxOC42MTgzIDEzLjM4MzkgMTguMzgzOUMxMy42MTgzIDE4LjE0OTUgMTMuNzUgMTcuODMxNSAxMy43NSAxNy41VjE2LjI1SDEyLjVWMTcuNUgyLjVWMi41MDAwMUg3LjVWNi4yNTAwMUM3LjUgNi41ODE1MyA3LjYzMTcgNi44OTk0NyA3Ljg2NjEyIDcuMTMzODlDOC4xMDA1NCA3LjM2ODMxIDguNDE4NDggNy41MDAwMSA4Ljc1IDcuNTAwMDFIMTIuNVY4Ljc1MDAxSDEzLjc1Wk04Ljc1IDYuMjUwMDFWMi43NTYyNkwxMi4yNDM4IDYuMjUwMDFIOC43NVpcIiBmaWxsPVwiYmxhY2tcIi8+XHJcbjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnRuLXRleHRcIj5FeHBvcnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXhwb3J0U2hvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYXJkIHB5LTIgIHBvc2l0aW9uLWFic29sdXRlIHByb2R1Y3Rkcm9wIHRvcC0xMCB3LTE1MHB4IGVuZC0wIHotMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBweS00IGNoZWNrYm94LWxhYmVsIG14LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwZGZFeHBvcnRUeXBlcy5pbmNsdWRlcyhzZWxlY3QpXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0RXhwb3J0QXNQUFQoJ0V4cG9ydCBhcyBQREYnLCdwZGYnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhwb3J0IGFzIFBERlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCIgY3Vyc29yLXBvaW50ZXIgY2hlY2tib3gtbGFiZWwgcHktNCBteC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3N2RXhwb3J0VHlwZXMuaW5jbHVkZXMoc2VsZWN0KVwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldEV4cG9ydEFzUFBUKCdFeHBvcnQgYXMgQ1NWJywnY3N2JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4cG9ydCBhcyBDU1ZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSB8fHNlbGVjdCA9PT0gJ2NsZWFuaW5nJ3x8c2VsZWN0ID09PSdzY3J1bSd8fHNlbGVjdCA9PT0nc3RvcmVvcGVuYW5kY2xvc2UnfHxzZWxlY3QgPT09J2ludmVudG9yeWNvdW50J3x8c2VsZWN0ID09PSdjYXJzYXR0ZW5kZWQnfHxzZWxlY3QgPT09J251bWJlcnBsYXRlaW5mbycgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cInNlbGVjdGVkU2VjdGlvbi5sZW5ndGggPjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIgY3Vyc29yLXBvaW50ZXIgY2hlY2tib3gtbGFiZWwgcHktNCAgbXgtMlwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldEV4cG9ydEFzUFBUKCdFeHBvcnQgYXMgUFBUJywncHB0JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4cG9ydCBhcyBQUFRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSB8fHNlbGVjdCA9PT0gJ2NsZWFuaW5nJ3x8c2VsZWN0ID09PSdzY3J1bSd8fHNlbGVjdCA9PT0nc3RvcmVvcGVuYW5kY2xvc2UnIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJzZWxlY3RlZFNlY3Rpb24ubGVuZ3RoID4wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgY2hlY2tib3gtbGFiZWwgcHktNCBteC0yXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0RXhwb3J0QXNQUFQoJ0V4cG9ydCBhcyBaSVAnLCd6aXBmaWxlcycpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHBvcnQgYXMgWklQXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIGN1cnNvci1wb2ludGVyIG1lLTEwXCIgKm5nSWY9XCIhZ2FsbGVyeUZvcm0udmFsdWUudmlld1JlZG8mJnNlbGVjdGVkVXNlcnMubGVuZ3RoPT09MCYmc2VsZWN0ZWRTdG9yZXMubGVuZ3RoPT09MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiBidG4gYnRuLXByaW1hcnkgZm9ybS1jb250cm9sIG5vLXRleHQtdHJhbnNmb3JtXCIgKGNsaWNrKT1cImV4cG9ydERldCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZXhwb3J0TGFiZWwgfX0gPCEtLSBCaW5kIGxhYmVsIHRleHQgaGVyZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImV4cG9ydFNob3dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FyZCBweS0yICBwb3NpdGlvbi1hYnNvbHV0ZSBwcm9kdWN0ZHJvcCB0b3AtMTAgdy0xNTBweCBlbmQtMCB6LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LXVuc3R5bGVkIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgcHktNCBjaGVja2JveC1sYWJlbCBteC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicGRmRXhwb3J0VHlwZXMuaW5jbHVkZXMoc2VsZWN0KVwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldEV4cG9ydEFzUFBUKCdFeHBvcnQgYXMgUERGJywncGRmJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4cG9ydCBhcyBQREZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiIGN1cnNvci1wb2ludGVyIGNoZWNrYm94LWxhYmVsIHB5LTQgbXgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNzdkV4cG9ydFR5cGVzLmluY2x1ZGVzKHNlbGVjdClcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRFeHBvcnRBc1BQVCgnRXhwb3J0IGFzIENTVicsJ2NzdicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHBvcnQgYXMgQ1NWXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gfHxzZWxlY3QgPT09ICdjbGVhbmluZyd8fHNlbGVjdCA9PT0nc2NydW0nfHxzZWxlY3QgPT09J3N0b3Jlb3BlbmFuZGNsb3NlJ3x8c2VsZWN0ID09PSdpbnZlbnRvcnljb3VudCd8fHNlbGVjdCA9PT0nY2Fyc2F0dGVuZGVkJ3x8c2VsZWN0ID09PSdudW1iZXJwbGF0ZWluZm8nIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJzZWxlY3RlZFNlY3Rpb24ubGVuZ3RoID4wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiIGN1cnNvci1wb2ludGVyIGNoZWNrYm94LWxhYmVsIHB5LTQgIG14LTJcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRFeHBvcnRBc1BQVCgnRXhwb3J0IGFzIFBQVCcsJ3BwdCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHBvcnQgYXMgUFBUXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gfHxzZWxlY3QgPT09ICdjbGVhbmluZyd8fHNlbGVjdCA9PT0nc2NydW0nfHxzZWxlY3QgPT09J3N0b3Jlb3BlbmFuZGNsb3NlJyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0lmPVwic2VsZWN0ZWRTZWN0aW9uLmxlbmd0aCA+MFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIGNoZWNrYm94LWxhYmVsIHB5LTQgbXgtMlwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldEV4cG9ydEFzUFBUKCdFeHBvcnQgYXMgWklQJywnemlwZmlsZXMnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhwb3J0IGFzIFpJUFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidmlld2xvYWRpbmdcIiBjbGFzcz1cInJvdyBsb2FkZXIgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInZpZXdub0RhdGEmJnNlbGVjdCAhPT0gJ2N1c3RvbScmJnNlbGVjdCAhPT0gJ3Rhc2snXCIgY2xhc3M9XCJyb3cgbXQtMjBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbXQtMjAgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYXJkLWJvZHkgbXQtMjAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctc3JjIG10LTUgdy00MFwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTIuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtdGl0bGVcIj5ObyBEZXRlY3Rpb25zIGZvdW5kPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtc3ViXCI+VGhlcmUgaXMgbm8gYnJlYWNoZXMgZm9yIHRoZSBzZWxlY3RlZCBwZXJpb2Q8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInZpZXdub0RhdGEmJnNlbGVjdCA9PT0gJ2N1c3RvbScgfHwgdmlld25vRGF0YSYmc2VsZWN0ID09PSAndGFzaydcIiBjbGFzcz1cInJvdyBtdC0yMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBtdC0yMCBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNhcmQtYm9keSBtdC0yMCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1zcmMgbXQtNSB3LTQwXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhMS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS10aXRsZVwiPk5vIGRhdGEgZm91bmQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS1zdWJcIj5UaGVyZSBpcyBubyByZXN1bHQgZm9yIHRoaXMgY2hlY2tsaXN0PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwiIXZpZXdsb2FkaW5nICYmICF2aWV3bm9EYXRhXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0PT09J2N1c3RvbSd8fHNlbGVjdD09PSd0YXNrJyBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd3NpbmdsZVwiIGNsYXNzPVwicWEtaGVhZGluZyBtLTMgbXgtMTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0aGlzLnNlbGVjdGVkU2VjdGlvblswXT8ucXVlc3Rpb25zWzBdfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd3NpbmdsZSYmc2hvd2ZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2IG5hdi1zdHJldGNoIG5hdi1saW5lLXRhYnMxIG5hdi1saW5lLXRhYnMgYm9yZGVyLXRyYW5zcGFyZW50IGZsZXgtbm93cmFwIG14LTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFuc3dlckZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJ0YXNrVGFiKGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVyID09PSBpdGVtLmtleSA/ICdhY3RpdmUnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rIGN1cnNvci1wb2ludGVyIG5vLWJvcmRlciBtZS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5rZXl9fTxzcGFuIGNsYXNzPVwibXgtMiBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVyID09PSBpdGVtLmtleSA/ICdiYWRnZS1udW0tcHJpbWFyeScgOidiYWRnZS1udW0tbXV0ZWQnXCI+e3tpdGVtLmNvdW50fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjaGVja2xpc3Qgb2Ygdmlld0NoZWNrbGlzdHNEYXRhPy5jaGVja2xpc3RBbnN3ZXJzXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIiAqbmdJZj1cImNsaWVudERhdGEubG9nbyYmY2xpZW50RGF0YS5sb2dvIT09JycmJnNob3dtdWx0aVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIm10LTUgbWItMyB0ZXh0LWNlbnRlciBpY29uc2l6ZVwiIHNyYz1cInt7Y2xpZW50RGF0YS5sb2dvfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC0xMCBtdC01XCIgKm5nSWY9XCJzaG93bXVsdGlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPlN0b3JlIE5hbWU6PC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj57e2NoZWNrbGlzdD8uc3RvcmVQcm9maWxlPy5zdG9yZU5hbWV9fSA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZT09PSdjaGVja2xpc3QnXCI+Q2hlY2tsaXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU6PC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIiAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGU9PT0ndGFzaydcIj5UYXNrIE5hbWU6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+e3tjaGVja2xpc3Q/LmNoZWNrbGlzdEluZm8/LmNoZWNrbGlzdE5hbWV9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPlN0YXRlICYgQ291bnRyeSA6PC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj57e2NoZWNrbGlzdD8uc3RvcmVQcm9maWxlPy5zdGF0ZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NoZWNrbGlzdD8uc3RvcmVQcm9maWxlPy5Db3VudHJ5fX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkR1cmF0aW9uIDo8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInVuaS1zdWJ0aXRsZVwiPiB7e2NoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbz8uZHVyYXRpb259fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+Tm8uIG9mIFF1ZXN0aW9ucyA6PC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj57e2NoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbz8ubm9vZlF1ZXN0aW9uc319PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIj5EYXRlIDo8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInVuaS1zdWJ0aXRsZVwiPiB7e2NoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbz8uZGF0ZX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIj5TdWJtaXR0ZWQgQnkgOjwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+e3tjaGVja2xpc3Q/LmNoZWNrbGlzdEluZm8/LnN1Ym1pdHRlZEJ5fX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPlRpbWUgOjwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+IHt7Y2hlY2tsaXN0Py5jaGVja2xpc3RJbmZvPy50aW1lfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2YgY2hlY2tsaXN0LnF1ZXN0aW9uQW5zd2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInFhLWJvZHJlciBteS01XCIgKm5nRm9yPVwibGV0IHF1ZXN0aW9uIG9mIHNlY3Rpb24ucXVlc3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cInF1ZXN0aW9uLnJlZG98fHF1ZXN0aW9uLnJlZG89PT1mYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZpZXctZGV0YWlsIGNvbC0xMiB0ZXh0LWVuZCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlZpZXdJbkRldGFpbHMocXVlc3Rpb24sY2hlY2tsaXN0Py5jaGVja2xpc3RJbmZvLGNoZWNrbGlzdD8uc3RvcmVQcm9maWxlLHNlY3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlldyBpbiBkZXRhaWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTUgMTAuODMzM1YxNS44MzMzQzE1IDE2LjI3NTQgMTQuODI0NCAxNi42OTkzIDE0LjUxMTggMTcuMDExOEMxNC4xOTkzIDE3LjMyNDQgMTMuNzc1NCAxNy41IDEzLjMzMzMgMTcuNUg0LjE2NjY3QzMuNzI0NjQgMTcuNSAzLjMwMDcyIDE3LjMyNDQgMi45ODgxNiAxNy4wMTE4QzIuNjc1NTkgMTYuNjk5MyAyLjUgMTYuMjc1NCAyLjUgMTUuODMzM1Y2LjY2NjY3QzIuNSA2LjIyNDY0IDIuNjc1NTkgNS44MDA3MiAyLjk4ODE2IDUuNDg4MTZDMy4zMDA3MiA1LjE3NTU5IDMuNzI0NjQgNSA0LjE2NjY3IDVIOS4xNjY2N00xMi41IDIuNUgxNy41TTE3LjUgMi41VjcuNU0xNy41IDIuNUw4LjMzMzMzIDExLjY2NjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyB3LTEwMCBtLTNcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTFcIiBzdHlsZT1cIndpZHRoOjMuMzMzMyVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd3NpbmdsZSYmKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlICE9PSAndGFuZ28nJiYhY2hlY2tsaXN0Py5jaGVja2xpc3RJbmZvPy5hcHByb3ZhbFN0YXR1cyYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfVGFza19pc0VkaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJsYWJlbFwiIFsobmdNb2RlbCldPVwicXVlc3Rpb24uY2hlY2tlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJxdWVzdGlvbi5yZWRvJiZxdWVzdGlvbi50YXNrXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdG11bHRpVGFzaygkZXZlbnQsY2hlY2tsaXN0LHF1ZXN0aW9uLGNoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbyxzZWN0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlciBtdC0yIG1lLTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zIHRleHQtdGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd3NpbmdsZSYmZ2FsbGVyeUZvcm0uZ2V0KCdmaWx0ZXJ0eXBlJyk/LnZhbHVlID09PSdDbHVzdGVycydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NoZWNrbGlzdD8uc3RvcmVQcm9maWxlPy5zdG9yZU5hbWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgdGV4dC10aXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93c2luZ2xlJiZnYWxsZXJ5Rm9ybS5nZXQoJ2ZpbHRlcnR5cGUnKT8udmFsdWUgPT09J1RlYW1zJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y2hlY2tsaXN0Py5zdG9yZVByb2ZpbGU/LnVzZXJOYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC04IHRleHQtZW5kIHRpdGxlLWRlc2NyaXB0aW9uXCIgKm5nSWY9XCJzaG93c2luZ2xlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3VibWl0dGVkIGJ5IDoge3tjaGVja2xpc3Q/LmNoZWNrbGlzdEluZm8/LnN1Ym1pdHRlZEJ5fX0gT24gOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y2hlY2tsaXN0Py5jaGVja2xpc3RJbmZvPy5kYXRlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbz8udGltZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cInNob3dtdWx0aVwiIGNsYXNzPVwicWEtaGVhZGluZ1wiPnt7cXVlc3Rpb24/LnFub319LlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cXVlc3Rpb24/LnFuYW1lfX08L2xpPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJQYXJ0aWFsbHkgbXktMyBweC01XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uPy5hbnN3ZXJUeXBlPT09J2Rlc2NyaXB0aXZlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlc3Rpb24udXNlckFuc3dlcjtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIGhhc011bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pOyBlbHNlIG5vTXVsdGlJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlJlZmVyZW5jZSBJbWFnZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiBnZXRHcmlkQ29sdW1ucyhxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UubGVuZ3RoKSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHF1ZXN0aW9uLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtdGlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc1ZhbGlkSW1hZ2UoaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk11bHRpSW1hZ2VQb3B1cChnZXRNdWx0aVJlZkltYWdlVXJscyhxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UpLGdldFJlZkltYWdlTmFtZXMocXVlc3Rpb24ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlKSxpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW0uaW1hZ2VVUkxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJSZWZlcmVuY2UgaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub011bHRpSW1hZ2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgICYmIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgIT09ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlJlZmVyZW5jZSBJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtdGlsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctbG9nbyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cDEoZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UsMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ3Rhc2snICYmIGhhc1F1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlJlZmVyZW5jZSBJbWFnZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiBnZXRHcmlkQ29sdW1ucyhxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlLmxlbmd0aCkgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS10aWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzVmFsaWRJbWFnZShpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cChnZXRSZWZJbWFnZVVybHMocXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSksZ2V0UmVmSW1hZ2VOYW1lcyhxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlKSxpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJSZWZlcmVuY2UgaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXQtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLnNvcEZsYWcgPyAnZmxhZ2Nsb3VyJzonJ1wiPnt7aXRlbS5hbnN3ZXJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbWFya3NUeHRcIiAqbmdJZj1cInF1ZXN0aW9uLnJlbWFya3MhPT0nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtYXJrcyA6IHt7cXVlc3Rpb24ucmVtYXJrc319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiUGFydGlhbGx5IG15LTMgcHgtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbj8uYW5zd2VyVHlwZT09PSdsaW5lYXJzY2FsZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIHF1ZXN0aW9uLnVzZXJBbnN3ZXI7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzTXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbikgfHwgKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgIT09ICcnICYmIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgIT09IG51bGwpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0JyAmJiBoYXNNdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKTsgZWxzZSBub011bHRpSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5SZWZlcmVuY2UgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJzogZ2V0R3JpZENvbHVtbnMocXVlc3Rpb24ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlLmxlbmd0aCkgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2U7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNWYWxpZEltYWdlKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5NdWx0aUltYWdlUG9wdXAoZ2V0TXVsdGlSZWZJbWFnZVVybHMocXVlc3Rpb24ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKHF1ZXN0aW9uLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZSksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtLmltYWdlVVJMXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUmVmZXJlbmNlIGltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9NdWx0aUltYWdlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlPT09J2NoZWNrbGlzdCcgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0gJycgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0gbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5SZWZlcmVuY2UgSW1hZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctbG9nbyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAxKGVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlLDApXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cInt7ZW52aXJvbm1lbnQuVHJheEFuc3dlckNETn19e3txdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFF1ZXN0aW9uIFJlZmVyZW5jZSBJbWFnZXMgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAndGFzaycgJiYgaGFzUXVlc3Rpb25SZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+UmVmZXJlbmNlIEltYWdlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtZ3JpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyc6IGdldEdyaWRDb2x1bW5zKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UubGVuZ3RoKSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2U7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNWYWxpZEltYWdlKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5JbWFnZVBvcHVwKGdldFJlZkltYWdlVXJscyhxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UpLGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlJlZmVyZW5jZSBpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxicj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXQtNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLnNvcEZsYWcgPyAnZmxhZ2Nsb3VyJzonJ1wiPnt7aXRlbS5hbnN3ZXJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbWFya3NUeHRcIiAqbmdJZj1cInF1ZXN0aW9uLnJlbWFya3MhPT0nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtYXJrcyA6IHt7cXVlc3Rpb24ucmVtYXJrc319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiUGFydGlhbGx5IG15LTMgcHgtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbj8uYW5zd2VyVHlwZT09PSd0aW1lJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlc3Rpb24udXNlckFuc3dlcjtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNNdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKSB8fCAocXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAmJiBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlICE9PSAnJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIGhhc011bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pOyBlbHNlIG5vTXVsdGlJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlJlZmVyZW5jZSBJbWFnZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiBnZXRHcmlkQ29sdW1ucyhxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UubGVuZ3RoKSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHF1ZXN0aW9uLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtdGlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc1ZhbGlkSW1hZ2UoaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk11bHRpSW1hZ2VQb3B1cChnZXRNdWx0aVJlZkltYWdlVXJscyhxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UpLGdldFJlZkltYWdlTmFtZXMocXVlc3Rpb24ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlKSxpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW0uaW1hZ2VVUkxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJSZWZlcmVuY2UgaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub011bHRpSW1hZ2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0gJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+UmVmZXJlbmNlIEltYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyc6IGdldEdyaWRDb2x1bW5zKDEpIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAxKGVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlLDApXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ3Rhc2snICYmIGhhc1F1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlJlZmVyZW5jZSBJbWFnZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiBnZXRHcmlkQ29sdW1ucyhxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlLmxlbmd0aCkgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS10aWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzVmFsaWRJbWFnZShpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cChnZXRSZWZJbWFnZVVybHMocXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSksZ2V0UmVmSW1hZ2VOYW1lcyhxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlKSxpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJSZWZlcmVuY2UgaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm10LTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5zb3BGbGFnID8gJ2ZsYWdjbG91cic6JydcIj57e2l0ZW0uYW5zd2VyfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZW1hcmtzVHh0XCIgKm5nSWY9XCJxdWVzdGlvbi5yZW1hcmtzIT09JydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbWFya3MgOiB7e3F1ZXN0aW9uLnJlbWFya3N9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlBhcnRpYWxseSBteS0zIHB4LTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24/LmFuc3dlclR5cGU9PT0nZGF0ZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIHF1ZXN0aW9uLnVzZXJBbnN3ZXI7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzTXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbikgfHwgKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0gJycpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0JyAmJiBoYXNNdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKTsgZWxzZSBub011bHRpSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5SZWZlcmVuY2UgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJzogZ2V0R3JpZENvbHVtbnMocXVlc3Rpb24ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlLmxlbmd0aCkgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2U7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNWYWxpZEltYWdlKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5NdWx0aUltYWdlUG9wdXAoZ2V0TXVsdGlSZWZJbWFnZVVybHMocXVlc3Rpb24ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKHF1ZXN0aW9uLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZSksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtLmltYWdlVVJMXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUmVmZXJlbmNlIGltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9NdWx0aUltYWdlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlPT09J2NoZWNrbGlzdCcgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0gJycgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0gbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5SZWZlcmVuY2UgSW1hZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctbG9nbyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAxKGVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlLDApXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cInt7ZW52aXJvbm1lbnQuVHJheEFuc3dlckNETn19e3txdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAndGFzaycgJiYgaGFzUXVlc3Rpb25SZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+UmVmZXJlbmNlIEltYWdlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtZ3JpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyc6IGdldEdyaWRDb2x1bW5zKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UubGVuZ3RoKSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2U7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNWYWxpZEltYWdlKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5JbWFnZVBvcHVwKGdldFJlZkltYWdlVXJscyhxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UpLGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlJlZmVyZW5jZSBpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXQtNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLnNvcEZsYWcgPyAnZmxhZ2Nsb3VyJzonJ1wiPnt7aXRlbS5hbnN3ZXJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbWFya3NUeHRcIiAqbmdJZj1cInF1ZXN0aW9uLnJlbWFya3MhPT0nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtYXJrcyA6IHt7cXVlc3Rpb24ucmVtYXJrc319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiUGFydGlhbGx5IG15LTMgcHgtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbj8uYW5zd2VyVHlwZT09PSd5ZXMvbm8nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi51c2VyQW5zd2VyO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIChoYXNNdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKSB8fCAocXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAmJiBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlICE9PSAnJykpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0JyAmJiBoYXNNdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKTsgZWxzZSBub011bHRpSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5SZWZlcmVuY2UgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJzogZ2V0R3JpZENvbHVtbnMocXVlc3Rpb24ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlLmxlbmd0aCkgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2U7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNWYWxpZEltYWdlKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5NdWx0aUltYWdlUG9wdXAoZ2V0TXVsdGlSZWZJbWFnZVVybHMocXVlc3Rpb24ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKHF1ZXN0aW9uLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZSksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtLmltYWdlVVJMXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUmVmZXJlbmNlIGltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9NdWx0aUltYWdlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlPT09J2NoZWNrbGlzdCcgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0nJyAmJiBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlICE9PSBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlJlZmVyZW5jZSBJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1sb2dvIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cDEoZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UsMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwie3tlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROfX17e3F1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2V9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZT09PSdjaGVja2xpc3QnICYmIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgIT09JycgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0gbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAndGFzaydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gUXVlc3Rpb24gUmVmZXJlbmNlIEltYWdlcyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICd0YXNrJyAmJiBoYXNRdWVzdGlvblJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5SZWZlcmVuY2UgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJzogZ2V0R3JpZENvbHVtbnMocXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZS5sZW5ndGgpIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtdGlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc1ZhbGlkSW1hZ2UoaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAoZ2V0UmVmSW1hZ2VVcmxzKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UpLGdldFJlZkltYWdlTmFtZXMocXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUmVmZXJlbmNlIGltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXQtNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLnNvcEZsYWcgPyAnZmxhZ2Nsb3VyJzonJ1wiPnt7aXRlbS5hbnN3ZXJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0udmFsaWRhdGlvbiAmJiBpdGVtLnZhbGlkYXRpb25BbnN3ZXIhPT0nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIChoYXNNdWx0aVJlZmVyZW5jZUltYWdlcyhpdGVtKSB8fCAoaXRlbT8ucmVmZXJlbmNlSW1hZ2UgJiYgKGl0ZW0ucmVmZXJlbmNlSW1hZ2UubGVuZ3RoID4gMCB8fCBpdGVtLnJlZmVyZW5jZUltYWdlICE9PSAnJykpKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0JyAmJiBoYXNNdWx0aVJlZmVyZW5jZUltYWdlcyhpdGVtKTsgZWxzZSBub011bHRpSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+UmVmZXJlbmNlIEltYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyc6IGdldEdyaWRDb2x1bW5zKGl0ZW0ubXVsdGlSZWZlcmVuY2VJbWFnZS5sZW5ndGgpIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcmVmZkl0ZW0gb2YgaXRlbS5tdWx0aVJlZmVyZW5jZUltYWdlO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtdGlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNWYWxpZEltYWdlKHJlZmZJdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5NdWx0aUltYWdlUG9wdXAoZ2V0TXVsdGlSZWZJbWFnZVVybHMoaXRlbS5tdWx0aVJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKGl0ZW0ubXVsdGlSZWZlcmVuY2VJbWFnZSksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgcmVmZkl0ZW0uaW1hZ2VVUkxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUmVmZXJlbmNlIGltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub011bHRpSW1hZ2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5yZWZlcmVuY2VJbWFnZSAmJiBpdGVtLnJlZmVyZW5jZUltYWdlIT09JydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlJlZmVyZW5jZSBJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLWxvZ28gY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cDEoZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW0ucmVmZXJlbmNlSW1hZ2UsMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cInt7ZW52aXJvbm1lbnQuVHJheEFuc3dlckNETn19e3tpdGVtLnJlZmVyZW5jZUltYWdlfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS52YWxpZGF0aW9uVHlwZT09PSdDYXB0dXJlIEltYWdlJz8nY29sLW1kLTYnOidjb2wtbWQtMTInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS52YWxpZGF0aW9uVHlwZT09PSdDYXB0dXJlIEltYWdlJ3x8aXRlbS52YWxpZGF0aW9uVHlwZT09PSdDYXB0dXJlIFZpZGVvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5WYWxpZGF0aW9uIEFuc3dlciA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNoZWNrRGV0ZWN0aW9uU3RhdHVzKHF1ZXN0aW9uLnVzZXJBbnN3ZXI/LlswXT8ucnVuQUlEYXRhKS5rZXlQcmVzZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjaGVja0RldGVjdGlvblN0YXR1cyhxdWVzdGlvbi51c2VyQW5zd2VyPy5bMF0/LnJ1bkFJRGF0YSkua2V5VmFsdWUgPyAnYmdTdWNjZXNzJyA6ICdiZ0RhbmdlcidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRGV0ZWN0aW9uU3RhdHVzKHF1ZXN0aW9uLnVzZXJBbnN3ZXI/LlswXT8ucnVuQUlEYXRhKS5rZXlWYWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ01hdGNoZWQnIDogJ05vdCBNYXRjaGVkJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8aW1nIGNsYXNzPVwiaW1nLWxvZ28gY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAxKGVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtLnZhbGlkYXRpb25BbnN3ZXIsMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0udmFsaWRhdGlvblR5cGU9PT0nQ2FwdHVyZSBJbWFnZSdcIiBzcmM9XCJ7e2Vudmlyb25tZW50LlRyYXhBbnN3ZXJDRE59fXt7aXRlbS52YWxpZGF0aW9uQW5zd2VyfX1cIiBhbHQ9XCJcIj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctbG9nbyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAxKChpdGVtLnJ1bkFJQW5zd2VyKSA/IGVudmlyb25tZW50LnRyYXhSdW5BaUNETiArIGl0ZW0ucnVuQUlBbnN3ZXIgOiBlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbS52YWxpZGF0aW9uQW5zd2VyLDApXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS52YWxpZGF0aW9uVHlwZT09PSdDYXB0dXJlIEltYWdlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIihpdGVtLnJ1bkFJQW5zd2VyKSA/IGVudmlyb25tZW50LnRyYXhSdW5BaUNETiArIGl0ZW0ucnVuQUlBbnN3ZXIgOiBlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbS52YWxpZGF0aW9uQW5zd2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZSB3LTEwMCBoLTQ1MHB4IHAtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS52YWxpZGF0aW9uVHlwZSA9PT0gJ0NhcHR1cmUgVmlkZW8nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2aWRlbyBjb250cm9scyBjbGFzcz1cInctMTAwIGgtMTAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW0udmFsaWRhdGlvbkFuc3dlclwiPjwvdmlkZW8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSB0b3AtMCBlbmQtMCBtLTMgY3Vyc29yLXBvaW50ZXJcIj48c3ZnIChjbGljayk9XCJkb3dubG9hZFZpZGVvKGl0ZW0uYW5zd2VyKVwiIHRpdGxlPVwiRG93bmxvYWQgVmlkZW9cIiBpZD1cImRvd25sb2FkLWljb25cIiB3aWR0aD1cIjQ0XCIgaGVpZ2h0PVwiNDRcIiB2aWV3Qm94PVwiMCAwIDQ0IDQ0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJpY29uLW92ZXJsYXlcIj48ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8zODIyXzE5NDc5KVwiPjxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIi8+PHJlY3QgeD1cIjIuNVwiIHk9XCIxLjVcIiB3aWR0aD1cIjM5XCIgaGVpZ2h0PVwiMzlcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiNEMEQ1RERcIi8+PHBhdGggZD1cIk0yOS41IDIzLjVWMjYuODMzM0MyOS41IDI3LjI3NTQgMjkuMzI0NCAyNy42OTkzIDI5LjAxMTggMjguMDExOEMyOC42OTkzIDI4LjMyNDQgMjguMjc1NCAyOC41IDI3LjgzMzMgMjguNUgxNi4xNjY3QzE1LjcyNDYgMjguNSAxNS4zMDA3IDI4LjMyNDQgMTQuOTg4MiAyOC4wMTE4QzE0LjY3NTYgMjcuNjk5MyAxNC41IDI3LjI3NTQgMTQuNSAyNi44MzMzVjIzLjVNMTcuODMzMyAxOS4zMzMzTDIyIDIzLjVNMjIgMjMuNUwyNi4xNjY3IDE5LjMzMzNNMjIgMjMuNVYxMy41XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9nPjxkZWZzPjxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMzgyMl8xOTQ3OVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQ0XCIgaGVpZ2h0PVwiNDRcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIvPjxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+PGZlT2Zmc2V0IGR5PVwiMVwiLz48ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMVwiLz48ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIi8+PGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18zODIyXzE5NDc5XCIvPjxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMzgyMl8xOTQ3OVwiIHJlc3VsdD1cInNoYXBlXCIvPjwvZmlsdGVyPjwvZGVmcz48L3N2Zz48L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlbWFya3NUeHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS52YWxpZGF0aW9uVHlwZT09PSdEZXNjcmlwdGl2ZSBBbnN3ZXInXCI+VmFsaWRhdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFuc3dlciA6e3tpdGVtLnZhbGlkYXRpb25BbnN3ZXJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZW1hcmtzVHh0XCIgKm5nSWY9XCJxdWVzdGlvbi5yZW1hcmtzIT09JydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbWFya3MgOiB7e3F1ZXN0aW9uLnJlbWFya3N9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5ydW5BSURhdGE/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbWFya3NUeHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhaURhdGFJdGVtIG9mIHF1ZXN0aW9uLnVzZXJBbnN3ZXI/LlswXT8ucnVuQUlEYXRhXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhaURhdGFJdGVtPy5sYWJsZU5hbWUgIT09ICdkZXRlY3Rpb25TdGF0dXMnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiPnt7YWlEYXRhSXRlbS5sYWJsZU5hbWV9fSA6PC9iPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2FpRGF0YUl0ZW0udmFsdWU/LnRvU3RyaW5nKCk/LnBhZFN0YXJ0KDIsJzAnKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlBhcnRpYWxseSBteS0zIHB4LTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24/LmFuc3dlclR5cGU9PT0nbXVsdGlwbGVjaG9pY2VzaW5nbGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0JyAmJiAoaGFzTXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbikgfHwgKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0gJycpKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIGhhc011bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pOyBlbHNlIG5vTXVsdGlJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+UmVmZXJlbmNlIEltYWdlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiBnZXRHcmlkQ29sdW1ucyhxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UubGVuZ3RoKSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2U7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtdGlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzVmFsaWRJbWFnZShpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk11bHRpSW1hZ2VQb3B1cChnZXRNdWx0aVJlZkltYWdlVXJscyhxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UpLGdldFJlZkltYWdlTmFtZXMocXVlc3Rpb24ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlKSxpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbS5pbWFnZVVSTFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUmVmZXJlbmNlIGltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vTXVsdGlJbWFnZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGU9PT0nY2hlY2tsaXN0JyAmJiBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlICE9PSBudWxsICYmIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgIT09ICcnICYmIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgIT09IHVuZGVmaW5lZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlJlZmVyZW5jZSBJbWFnZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctbG9nbyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cDEoZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UsMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJ7e2Vudmlyb25tZW50LlRyYXhBbnN3ZXJDRE59fXt7cXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZX19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAndGFzaydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAndGFzaycgJiYgaGFzUXVlc3Rpb25SZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5SZWZlcmVuY2UgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyc6IGdldEdyaWRDb2x1bW5zKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UubGVuZ3RoKSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc1ZhbGlkSW1hZ2UoaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5JbWFnZVBvcHVwKGdldFJlZkltYWdlVXJscyhxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UpLGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJSZWZlcmVuY2UgaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi51c2VyQW5zd2VyO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXQtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLnNvcEZsYWcgPyAnZmxhZ2Nsb3VyJzonJ1wiPnt7aXRlbS5hbnN3ZXJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc011bHRpUmVmZXJlbmNlSW1hZ2VzKGl0ZW0pIHx8IChpdGVtLnJlZmVyZW5jZUltYWdlICYmIGl0ZW0ucmVmZXJlbmNlSW1hZ2UgIT09ICcnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0JyAmJiBoYXNNdWx0aVJlZmVyZW5jZUltYWdlcyhpdGVtKTsgZWxzZSBub011bHRpSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+UmVmZXJlbmNlIEltYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyc6IGdldEdyaWRDb2x1bW5zKGl0ZW0ubXVsdGlSZWZlcmVuY2VJbWFnZS5sZW5ndGgpIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcmVmZkl0ZW0gb2YgaXRlbS5tdWx0aVJlZmVyZW5jZUltYWdlO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtdGlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNWYWxpZEltYWdlKHJlZmZJdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5NdWx0aUltYWdlUG9wdXAoZ2V0TXVsdGlSZWZJbWFnZVVybHMoaXRlbS5tdWx0aVJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKGl0ZW0ubXVsdGlSZWZlcmVuY2VJbWFnZSksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgcmVmZkl0ZW0uaW1hZ2VVUkxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUmVmZXJlbmNlIGltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub011bHRpSW1hZ2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5yZWZlcmVuY2VJbWFnZSE9PW51bGwmJml0ZW0ucmVmZXJlbmNlSW1hZ2UhPT0nJyYmZ2FsbGVyeUZvcm0udmFsdWUudHlwZT09PSdjaGVja2xpc3QnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5SZWZlcmVuY2UgSW1hZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1sb2dvIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAxKGVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtLnJlZmVyZW5jZUltYWdlLDApXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJ7e2Vudmlyb25tZW50LlRyYXhBbnN3ZXJDRE59fXt7aXRlbS5yZWZlcmVuY2VJbWFnZX19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICd0YXNrJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKVwiPlJlZmVyZW5jZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbWFnZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc1JlZmVyZW5jZUltYWdlcyhxdWVzdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFuc3dlciBvZiBxdWVzdGlvbi5hbnN3ZXJzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhbnN3ZXIucmVmZXJlbmNlSW1hZ2U/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhbnN3ZXIucmVmZXJlbmNlSW1hZ2U7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cChnZXRSZWZJbWFnZVVybHMoYW5zd2VyLnJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKGFuc3dlci5yZWZlcmVuY2VJbWFnZSksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJpdGVtLnZhbGlkYXRpb25UeXBlPT09J0NhcHR1cmUgSW1hZ2UnPydjb2wtbWQtNic6J2NvbC1tZC0xMidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS52YWxpZGF0aW9uJiZpdGVtLnZhbGlkYXRpb25BbnN3ZXIhPT0nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktMyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0udmFsaWRhdGlvblR5cGU9PT0nQ2FwdHVyZSBJbWFnZSd8fGl0ZW0udmFsaWRhdGlvblR5cGU9PT0nQ2FwdHVyZSBWaWRlbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+VmFsaWRhdGlvbiBBbnN3ZXIgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjaGVja0RldGVjdGlvblN0YXR1cyhxdWVzdGlvbi51c2VyQW5zd2VyPy5bMF0/LnJ1bkFJRGF0YSkua2V5UHJlc2VudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY2hlY2tEZXRlY3Rpb25TdGF0dXMocXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5ydW5BSURhdGEpLmtleVZhbHVlID8gJ2JnU3VjY2VzcycgOiAnYmdEYW5nZXInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0RldGVjdGlvblN0YXR1cyhxdWVzdGlvbi51c2VyQW5zd2VyPy5bMF0/LnJ1bkFJRGF0YSkua2V5VmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdNYXRjaGVkJyA6ICdOb3QgTWF0Y2hlZCcgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGltZyBjbGFzcz1cImltZy1sb2dvIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9wZW5JbWFnZVBvcHVwMShlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbS52YWxpZGF0aW9uQW5zd2VyLDApXCIgKm5nSWY9XCJpdGVtLnZhbGlkYXRpb25UeXBlPT09J0NhcHR1cmUgSW1hZ2UnXCIgc3JjPVwie3tlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROfX17e2l0ZW0udmFsaWRhdGlvbkFuc3dlcn19XCIgYWx0PVwiXCI+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLWxvZ28gY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5JbWFnZVBvcHVwMSgoaXRlbS5ydW5BSUFuc3dlcikgPyBlbnZpcm9ubWVudC50cmF4UnVuQWlDRE4gKyBpdGVtLnJ1bkFJQW5zd2VyIDogZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW0udmFsaWRhdGlvbkFuc3dlciwwKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0udmFsaWRhdGlvblR5cGU9PT0nQ2FwdHVyZSBJbWFnZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCIoaXRlbS5ydW5BSUFuc3dlcikgPyBlbnZpcm9ubWVudC50cmF4UnVuQWlDRE4gKyBpdGVtLnJ1bkFJQW5zd2VyIDogZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW0udmFsaWRhdGlvbkFuc3dlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgdy0xMDAgaC00NTBweCBwLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0udmFsaWRhdGlvblR5cGUgPT09ICdDYXB0dXJlIFZpZGVvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlkZW8gY29udHJvbHMgY2xhc3M9XCJ3LTEwMCBoLTEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtLnZhbGlkYXRpb25BbnN3ZXJcIj48L3ZpZGVvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgdG9wLTAgZW5kLTAgbS0zIGN1cnNvci1wb2ludGVyXCI+PHN2ZyAoY2xpY2spPVwiZG93bmxvYWRWaWRlbyhpdGVtLmFuc3dlcilcIiB0aXRsZT1cIkRvd25sb2FkIFZpZGVvXCIgaWQ9XCJkb3dubG9hZC1pY29uXCIgd2lkdGg9XCI0NFwiIGhlaWdodD1cIjQ0XCIgdmlld0JveD1cIjAgMCA0NCA0NFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwiaWNvbi1vdmVybGF5XCI+PGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMzgyMl8xOTQ3OSlcIj48cmVjdCB4PVwiMlwiIHk9XCIxXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgcng9XCI4XCIgZmlsbD1cIndoaXRlXCIvPjxyZWN0IHg9XCIyLjVcIiB5PVwiMS41XCIgd2lkdGg9XCIzOVwiIGhlaWdodD1cIjM5XCIgcng9XCI3LjVcIiBzdHJva2U9XCIjRDBENUREXCIvPjxwYXRoIGQ9XCJNMjkuNSAyMy41VjI2LjgzMzNDMjkuNSAyNy4yNzU0IDI5LjMyNDQgMjcuNjk5MyAyOS4wMTE4IDI4LjAxMThDMjguNjk5MyAyOC4zMjQ0IDI4LjI3NTQgMjguNSAyNy44MzMzIDI4LjVIMTYuMTY2N0MxNS43MjQ2IDI4LjUgMTUuMzAwNyAyOC4zMjQ0IDE0Ljk4ODIgMjguMDExOEMxNC42NzU2IDI3LjY5OTMgMTQuNSAyNy4yNzU0IDE0LjUgMjYuODMzM1YyMy41TTE3LjgzMzMgMTkuMzMzM0wyMiAyMy41TTIyIDIzLjVMMjYuMTY2NyAxOS4zMzMzTTIyIDIzLjVWMTMuNVwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvZz48ZGVmcz48ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzM4MjJfMTk0NzlcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI0NFwiIGhlaWdodD1cIjQ0XCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz48ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIvPjxmZU9mZnNldCBkeT1cIjFcIi8+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIi8+PGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMC4wNjI3NDUxIDAgMCAwIDAgMC4wOTQxMTc2IDAgMCAwIDAgMC4xNTY4NjMgMCAwIDAgMC4wNSAwXCIvPjxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMzgyMl8xOTQ3OVwiLz48ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93XzM4MjJfMTk0NzlcIiByZXN1bHQ9XCJzaGFwZVwiLz48L2ZpbHRlcj48L2RlZnM+PC9zdmc+PC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0udmFsaWRhdGlvblR5cGU9PT0nRGVzY3JpcHRpdmUgQW5zd2VyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uc29wRmxhZyA/ICdmbGFnY2xvdXInOicnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkYXRpb24gQW5zd2VyIDoge3tpdGVtLnZhbGlkYXRpb25BbnN3ZXJ9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbWFya3NUeHRcIiAqbmdJZj1cInF1ZXN0aW9uLnJlbWFya3MhPT0nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtYXJrcyA6IHt7cXVlc3Rpb24ucmVtYXJrc319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi51c2VyQW5zd2VyPy5bMF0/LnJ1bkFJRGF0YT8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVtYXJrc1R4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFpRGF0YUl0ZW0gb2YgcXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5ydW5BSURhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFpRGF0YUl0ZW0/LmxhYmxlTmFtZSAhPT0gJ2RldGVjdGlvblN0YXR1cydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGI+e3thaURhdGFJdGVtLmxhYmxlTmFtZX19IDo8L2I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YWlEYXRhSXRlbS52YWx1ZT8udG9TdHJpbmcoKT8ucGFkU3RhcnQoMiwnMCcpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHB4LTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24/LmFuc3dlclR5cGU9PT0nbXVsdGlwbGVjaG9pY2VtdWx0aXBsZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIChoYXNNdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKSB8fCAocXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAmJiBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlICE9PSAnJykpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ2NoZWNrbGlzdCcgJiYgaGFzTXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbik7IGVsc2Ugbm9NdWx0aUltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5SZWZlcmVuY2UgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyc6IGdldEdyaWRDb2x1bW5zKHF1ZXN0aW9uLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZS5sZW5ndGgpIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHF1ZXN0aW9uLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS10aWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNWYWxpZEltYWdlKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuTXVsdGlJbWFnZVBvcHVwKGdldE11bHRpUmVmSW1hZ2VVcmxzKHF1ZXN0aW9uLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZSksZ2V0UmVmSW1hZ2VOYW1lcyhxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UpLGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtLmltYWdlVVJMXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJSZWZlcmVuY2UgaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9NdWx0aUltYWdlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZT09PSdjaGVja2xpc3QnICYmIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgIT09IG51bGwgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0gJycgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0gdW5kZWZpbmVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+UmVmZXJlbmNlIEltYWdlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1sb2dvIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5JbWFnZVBvcHVwMShlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSwwKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cInt7ZW52aXJvbm1lbnQuVHJheEFuc3dlckNETn19e3txdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ3Rhc2snICYmIGhhc1F1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFF1ZXN0aW9uIFJlZmVyZW5jZSBJbWFnZXMgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ3Rhc2snICYmIGhhc1F1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+UmVmZXJlbmNlIEltYWdlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiBnZXRHcmlkQ29sdW1ucyhxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlLmxlbmd0aCkgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS10aWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNWYWxpZEltYWdlKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cChnZXRSZWZJbWFnZVVybHMocXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSksZ2V0UmVmSW1hZ2VOYW1lcyhxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlKSxpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUmVmZXJlbmNlIGltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJQYXJ0aWFsbHkgbXktMyBweC01XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlc3Rpb24udXNlckFuc3dlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm10LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5zb3BGbGFnID8gJ2ZsYWdjbG91cic6JydcIj57e2l0ZW0uYW5zd2VyfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0JyAmJiBoYXNNdWx0aVJlZmVyZW5jZUltYWdlcyhpdGVtKSB8fCAoaXRlbS5yZWZlcmVuY2VJbWFnZSAmJiBpdGVtLnJlZmVyZW5jZUltYWdlICE9PSAnJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ2NoZWNrbGlzdCcgJiYgaGFzTXVsdGlSZWZlcmVuY2VJbWFnZXMoaXRlbSk7IGVsc2Ugbm9NdWx0aUltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlJlZmVyZW5jZSBJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtZ3JpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiBnZXRHcmlkQ29sdW1ucyhpdGVtLm11bHRpUmVmZXJlbmNlSW1hZ2UubGVuZ3RoKSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHJlZmZJdGVtIG9mIGl0ZW0ubXVsdGlSZWZlcmVuY2VJbWFnZTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzVmFsaWRJbWFnZShyZWZmSXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuTXVsdGlJbWFnZVBvcHVwKGdldE11bHRpUmVmSW1hZ2VVcmxzKGl0ZW0ubXVsdGlSZWZlcmVuY2VJbWFnZSksZ2V0UmVmSW1hZ2VOYW1lcyhpdGVtLm11bHRpUmVmZXJlbmNlSW1hZ2UpLGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIHJlZmZJdGVtLmltYWdlVVJMXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlJlZmVyZW5jZSBpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9NdWx0aUltYWdlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0ucmVmZXJlbmNlSW1hZ2UgIT09IG51bGwgJiYgaXRlbS5yZWZlcmVuY2VJbWFnZSAhPT0nJyAmJiBnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlPT09J2NoZWNrbGlzdCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlJlZmVyZW5jZSBJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLWxvZ28gY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cDEoZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW0ucmVmZXJlbmNlSW1hZ2UsMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cInt7ZW52aXJvbm1lbnQuVHJheEFuc3dlckNETn19e3tpdGVtLnJlZmVyZW5jZUltYWdlfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ3Rhc2snXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+IFJlZmVyZW5jZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbWFnZSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhbnN3ZXIgb2YgcXVlc3Rpb24uYW5zd2Vyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYW5zd2VyLnJlZmVyZW5jZUltYWdlPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS10aWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYW5zd2VyLnJlZmVyZW5jZUltYWdlO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAoZ2V0UmVmSW1hZ2VVcmxzKGFuc3dlci5yZWZlcmVuY2VJbWFnZSksZ2V0UmVmSW1hZ2VOYW1lcyhhbnN3ZXIucmVmZXJlbmNlSW1hZ2UpLGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJpdGVtLnZhbGlkYXRpb25UeXBlPT09J0NhcHR1cmUgSW1hZ2UnPydjb2wtbWQtNic6J2NvbC1tZC0xMidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS52YWxpZGF0aW9uJiZpdGVtLnZhbGlkYXRpb25BbnN3ZXImJml0ZW0udmFsaWRhdGlvbkFuc3dlciE9PScnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS52YWxpZGF0aW9uVHlwZT09PSdDYXB0dXJlIEltYWdlJ3x8aXRlbS52YWxpZGF0aW9uVHlwZT09PSdDYXB0dXJlIFZpZGVvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5WYWxpZGF0aW9uIEFuc3dlciA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNoZWNrRGV0ZWN0aW9uU3RhdHVzKGl0ZW0/LnJ1bkFJRGF0YSkua2V5UHJlc2VudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY2hlY2tEZXRlY3Rpb25TdGF0dXMoaXRlbT8ucnVuQUlEYXRhKS5rZXlWYWx1ZSA/ICdiZ1N1Y2Nlc3MnIDogJ2JnRGFuZ2VyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tEZXRlY3Rpb25TdGF0dXMoaXRlbT8ucnVuQUlEYXRhKS5rZXlWYWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ01hdGNoZWQnIDogJ05vdCBNYXRjaGVkJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8aW1nIGNsYXNzPVwiaW1nLWxvZ28gIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9wZW5JbWFnZVBvcHVwMShlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbS52YWxpZGF0aW9uQW5zd2VyLDApXCIgKm5nSWY9XCJpdGVtLnZhbGlkYXRpb25UeXBlPT09J0NhcHR1cmUgSW1hZ2UnXCIgc3JjPVwie3tlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROfX17e2l0ZW0udmFsaWRhdGlvbkFuc3dlcn19XCIgIGFsdD1cIlwiPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1sb2dvIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cDEoKGl0ZW0ucnVuQUlBbnN3ZXIpID8gZW52aXJvbm1lbnQudHJheFJ1bkFpQ0ROICsgaXRlbS5ydW5BSUFuc3dlciA6IGVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtLnZhbGlkYXRpb25BbnN3ZXIsMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnZhbGlkYXRpb25UeXBlPT09J0NhcHR1cmUgSW1hZ2UnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiKGl0ZW0ucnVuQUlBbnN3ZXIpID8gZW52aXJvbm1lbnQudHJheFJ1bkFpQ0ROICsgaXRlbS5ydW5BSUFuc3dlciA6IGVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtLnZhbGlkYXRpb25BbnN3ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIHctMTAwIGgtNDUwcHggcC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnZhbGlkYXRpb25UeXBlID09PSAnQ2FwdHVyZSBWaWRlbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZpZGVvIGNvbnRyb2xzIGNsYXNzPVwidy0xMDAgaC0xMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbS52YWxpZGF0aW9uQW5zd2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmlkZW8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSB0b3AtMCBlbmQtMCBtLTMgY3Vyc29yLXBvaW50ZXJcIj48c3ZnIChjbGljayk9XCJkb3dubG9hZFZpZGVvKGl0ZW0uYW5zd2VyKVwiIHRpdGxlPVwiRG93bmxvYWQgVmlkZW9cIiBpZD1cImRvd25sb2FkLWljb25cIiB3aWR0aD1cIjQ0XCIgaGVpZ2h0PVwiNDRcIiB2aWV3Qm94PVwiMCAwIDQ0IDQ0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJpY29uLW92ZXJsYXlcIj48ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8zODIyXzE5NDc5KVwiPjxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIi8+PHJlY3QgeD1cIjIuNVwiIHk9XCIxLjVcIiB3aWR0aD1cIjM5XCIgaGVpZ2h0PVwiMzlcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiNEMEQ1RERcIi8+PHBhdGggZD1cIk0yOS41IDIzLjVWMjYuODMzM0MyOS41IDI3LjI3NTQgMjkuMzI0NCAyNy42OTkzIDI5LjAxMTggMjguMDExOEMyOC42OTkzIDI4LjMyNDQgMjguMjc1NCAyOC41IDI3LjgzMzMgMjguNUgxNi4xNjY3QzE1LjcyNDYgMjguNSAxNS4zMDA3IDI4LjMyNDQgMTQuOTg4MiAyOC4wMTE4QzE0LjY3NTYgMjcuNjk5MyAxNC41IDI3LjI3NTQgMTQuNSAyNi44MzMzVjIzLjVNMTcuODMzMyAxOS4zMzMzTDIyIDIzLjVNMjIgMjMuNUwyNi4xNjY3IDE5LjMzMzNNMjIgMjMuNVYxMy41XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9nPjxkZWZzPjxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMzgyMl8xOTQ3OVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQ0XCIgaGVpZ2h0PVwiNDRcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIvPjxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+PGZlT2Zmc2V0IGR5PVwiMVwiLz48ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMVwiLz48ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIi8+PGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18zODIyXzE5NDc5XCIvPjxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMzgyMl8xOTQ3OVwiIHJlc3VsdD1cInNoYXBlXCIvPjwvZmlsdGVyPjwvZGVmcz48L3N2Zz48L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS52YWxpZGF0aW9uVHlwZT09PSdEZXNjcmlwdGl2ZSBBbnN3ZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5zb3BGbGFnID8gJ2ZsYWdjbG91cic6JydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsaWRhdGlvbiBBbnN3ZXIgOiB7e2l0ZW0udmFsaWRhdGlvbkFuc3dlcn19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZW1hcmtzVHh0XCIgKm5nSWY9XCJxdWVzdGlvbi5yZW1hcmtzIT09JydcIj4gUmVtYXJrcyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cXVlc3Rpb24ucmVtYXJrc319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLnVzZXJBbnN3ZXI/LlswXT8ucnVuQUlEYXRhPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbWFya3NUeHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFpRGF0YUl0ZW0gb2YgcXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5ydW5BSURhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhaURhdGFJdGVtPy5sYWJsZU5hbWUgIT09ICdkZXRlY3Rpb25TdGF0dXMnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGI+e3thaURhdGFJdGVtLmxhYmxlTmFtZX19IDo8L2I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3thaURhdGFJdGVtLnZhbHVlPy50b1N0cmluZygpPy5wYWRTdGFydCgyLCcwJyl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cInF1ZXN0aW9uPy5hbnN3ZXJUeXBlPT09J2ltYWdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ3Rhc2snICYmIChoYXNSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pIHx8IGhhc0NoZWNrbGlzdFJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbikpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc1JlZmVyZW5jZUltYWdlcyhxdWVzdGlvbilcIj5SZWZlcmVuY2UgSW1hZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhbnN3ZXIgb2YgcXVlc3Rpb24uYW5zd2Vyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhbnN3ZXIucmVmZXJlbmNlSW1hZ2U/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS10aWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFuc3dlci5yZWZlcmVuY2VJbWFnZTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAoZ2V0UmVmSW1hZ2VVcmxzKGFuc3dlci5yZWZlcmVuY2VJbWFnZSksZ2V0UmVmSW1hZ2VOYW1lcyhhbnN3ZXIucmVmZXJlbmNlSW1hZ2UpLGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBGb3IgQ2hlY2tsaXN0IFR5cGUgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0JyAmJiAoaGFzSW1hZ2VNdWx0aVJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbikgfHwgaGFzUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKSB8fCBoYXNDaGVja2xpc3RSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIGhhc0ltYWdlTXVsdGlSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pOyBlbHNlIG5vTXVsdGlJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0ltYWdlTXVsdGlSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlIEltYWdlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0ltYWdlTXVsdGlSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYW5zd2VyIG9mIHF1ZXN0aW9uLmFuc3dlcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhbnN3ZXIubXVsdGlSZWZlcmVuY2VJbWFnZT8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS10aWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhbnN3ZXIubXVsdGlSZWZlcmVuY2VJbWFnZTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuTXVsdGlJbWFnZVBvcHVwKGdldE11bHRpUmVmSW1hZ2VVcmxzKGFuc3dlci5tdWx0aVJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKGFuc3dlci5tdWx0aVJlZmVyZW5jZUltYWdlKSxpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW0uaW1hZ2VVUkxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vTXVsdGlJbWFnZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0JyAmJiAoaGFzUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKSB8fCBoYXNDaGVja2xpc3RSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzQ2hlY2tsaXN0UmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWZlcmVuY2UgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNDaGVja2xpc3RSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhbnN3ZXIgb2YgcXVlc3Rpb24uYW5zd2VycztsZXQgaT1pbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYW5zd2VyLnJlZmVyZW5jZUltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5JbWFnZVBvcHVwKGdldFJlZmNoZWNrbGlzdEltYWdlVXJscyhxdWVzdGlvbi5hbnN3ZXJzKSxnZXRSZWZjaGVja2xpc3RJbWFnZU5hbWVzKHF1ZXN0aW9uLmFuc3dlcnMpLGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgYW5zd2VyLnJlZmVyZW5jZUltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgcm93XCIgKm5nSWY9XCJoYXNJbWFnZUFuc3dlcihxdWVzdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+VXBsb2FkZWQgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNoZWNrRGV0ZWN0aW9uU3RhdHVzKHF1ZXN0aW9uLnVzZXJBbnN3ZXI/LlswXT8ucnVuQUlEYXRhKS5rZXlQcmVzZW50IDsgZWxzZSBub1J1bkFJRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjaGVja0RldGVjdGlvblN0YXR1cyhxdWVzdGlvbi51c2VyQW5zd2VyPy5bMF0/LnJ1bkFJRGF0YSkua2V5VmFsdWUgPyAnYmdTdWNjZXNzJyA6ICdiZ0RhbmdlcidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tEZXRlY3Rpb25TdGF0dXMocXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5ydW5BSURhdGEpLmtleVZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ01hdGNoZWQnIDogJ05vdCBNYXRjaGVkJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub1J1bkFJRGF0YT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWNoZWNrRGV0ZWN0aW9uU3RhdHVzKHF1ZXN0aW9uLnVzZXJBbnN3ZXI/LlswXT8ucnVuQUlEYXRhKS5rZXlQcmVzZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5ydW5BSUFuc3dlciBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5kZXRlY3Rpb25TdGF0dXMgIT09IHVuZGVmaW5lZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwicXVlc3Rpb24udXNlckFuc3dlclswXT8uZGV0ZWN0aW9uU3RhdHVzID8gJ2JnU3VjY2VzcycgOiAnYmdEYW5nZXInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3txdWVzdGlvbi51c2VyQW5zd2VyWzBdLmRldGVjdGlvblN0YXR1c1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ01hdGNoZWQnIDogJ05vdCBNYXRjaGVkJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieydncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiBnZXRHcmlkQ29sdW1ucyhxdWVzdGlvbi51c2VyQW5zd2VyLmxlbmd0aCksICdncmlkLWF1dG8tcm93cyc6IGdldEdyaWRSb3dIZWlnaHQocXVlc3Rpb24udXNlckFuc3dlci5sZW5ndGgpfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtdGlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlc3Rpb24udXNlckFuc3dlcjtsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5JbWFnZVBvcHVwKGdldEltYWdlVXJscyhxdWVzdGlvbi51c2VyQW5zd2VyKSxnZXRJbWFnZU5hbWVzKHF1ZXN0aW9uLnVzZXJBbnN3ZXIpLGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCIoaXRlbS5ydW5BSUFuc3dlcikgPyBlbnZpcm9ubWVudC50cmF4UnVuQWlDRE4gKyBpdGVtLnJ1bkFJQW5zd2VyIDogZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW0uYW5zd2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBzYW5pdGl6ZVVybChlbnZpcm9ubWVudC50cmF4UnVuQWlDRE4gKyBpdGVtLnJ1bkFJQW5zd2VyKSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVtYXJrc1R4dFwiICpuZ0lmPVwicXVlc3Rpb24ucmVtYXJrcyE9PScnXCI+UmVtYXJrcyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cXVlc3Rpb24ucmVtYXJrc319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicmVtYXJrc1R4dFwiICpuZ0lmPVwicXVlc3Rpb24ucnVuQUkgJiYgcXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5lbXBsb3llZUNvdW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiPkVtcGxveWVlIENvdW50IDo8L2I+IHt7cXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5lbXBsb3llZUNvdW50Py50b1N0cmluZygpPy5wYWRTdGFydCgyLCcwJyl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5ydW5BSURhdGE/Lmxlbmd0aDsgZWxzZSBub1J1bkFJRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVtYXJrc1R4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYWlEYXRhSXRlbSBvZiBxdWVzdGlvbi51c2VyQW5zd2VyPy5bMF0/LnJ1bkFJRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFpRGF0YUl0ZW0/LmxhYmxlTmFtZSAhPT0gJ2RldGVjdGlvblN0YXR1cydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yj57e2FpRGF0YUl0ZW0ubGFibGVOYW1lfX0gOjwvYj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2FpRGF0YUl0ZW0udmFsdWU/LnRvU3RyaW5nKCk/LnBhZFN0YXJ0KDIsJzAnKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9SdW5BSURhdGE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXF1ZXN0aW9uLnVzZXJBbnN3ZXI/LlswXT8ucnVuQUlEYXRhPy5sZW5ndGggJiYgcXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5lbXBsb3llZUNvdW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVtYXJrc1R4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi51c2VyQW5zd2VyPy5bMF0/LmVtcGxveWVlQ291bnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yj5FbXBsb3llZSBDb3VudCA6PC9iPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5lbXBsb3llZUNvdW50Py50b1N0cmluZygpPy5wYWRTdGFydCgyLCcwJyl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHB4LTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24/LmFuc3dlclR5cGU9PT0nZGVzY3JpcHRpdmVJbWFnZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICd0YXNrJyAmJiAoaGFzUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKSB8fCBoYXNDaGVja2xpc3RSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+IFJlZmVyZW5jZSBJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtZ3JpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc1JlZmVyZW5jZUltYWdlcyhxdWVzdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFuc3dlciBvZiBxdWVzdGlvbi5hbnN3ZXJzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFuc3dlci5yZWZlcmVuY2VJbWFnZT8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYW5zd2VyLnJlZmVyZW5jZUltYWdlO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cChnZXRSZWZJbWFnZVVybHMoYW5zd2VyLnJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKGFuc3dlci5yZWZlcmVuY2VJbWFnZSksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEZvciBDaGVja2xpc3QgVHlwZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIChoYXNJbWFnZU11bHRpUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKSB8fCBoYXNSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIGhhc0ltYWdlTXVsdGlSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pOyBlbHNlIG5vTXVsdGlJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0ltYWdlTXVsdGlSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlIEltYWdlIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtZ3JpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNJbWFnZU11bHRpUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFuc3dlciBvZiBxdWVzdGlvbi5hbnN3ZXJzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYW5zd2VyLm11bHRpUmVmZXJlbmNlSW1hZ2U/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtdGlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYW5zd2VyLm11bHRpUmVmZXJlbmNlSW1hZ2U7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk11bHRpSW1hZ2VQb3B1cChnZXRNdWx0aVJlZkltYWdlVXJscyhhbnN3ZXIubXVsdGlSZWZlcmVuY2VJbWFnZSksZ2V0UmVmSW1hZ2VOYW1lcyhhbnN3ZXIubXVsdGlSZWZlcmVuY2VJbWFnZSksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtLmltYWdlVVJMXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub011bHRpSW1hZ2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ2NoZWNrbGlzdCcgJiYgKGhhc1JlZmVyZW5jZUltYWdlcyhxdWVzdGlvbikgfHwgaGFzQ2hlY2tsaXN0UmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0NoZWNrbGlzdFJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlIEltYWdlIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0NoZWNrbGlzdFJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFuc3dlciBvZiBxdWVzdGlvbi5hbnN3ZXJzO2xldCBpPWluZGV4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtdGlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhbnN3ZXIucmVmZXJlbmNlSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAoZ2V0UmVmY2hlY2tsaXN0SW1hZ2VVcmxzKHF1ZXN0aW9uLmFuc3dlcnMpLGdldFJlZmNoZWNrbGlzdEltYWdlTmFtZXMocXVlc3Rpb24uYW5zd2VycyksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBhbnN3ZXIucmVmZXJlbmNlSW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJoYXNSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pIHx8IGhhc0NoZWNrbGlzdFJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbikgPyAnY29sLW1kLTYnIDogJ2NvbC1tZC02J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+VXBsb2FkZWQgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY2hlY2tEZXRlY3Rpb25TdGF0dXMocXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5ydW5BSURhdGEpLmtleVByZXNlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjaGVja0RldGVjdGlvblN0YXR1cyhxdWVzdGlvbi51c2VyQW5zd2VyPy5bMF0/LnJ1bkFJRGF0YSkua2V5VmFsdWUgPyAnYmdTdWNjZXNzJyA6ICdiZ0RhbmdlcidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0RldGVjdGlvblN0YXR1cyhxdWVzdGlvbi51c2VyQW5zd2VyPy5bMF0/LnJ1bkFJRGF0YSkua2V5VmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ01hdGNoZWQnIDogJ05vdCBNYXRjaGVkJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJzogZ2V0R3JpZENvbHVtbnMocXVlc3Rpb24udXNlckFuc3dlci5sZW5ndGgpLCAnZ3JpZC1hdXRvLXJvd3MnOiBnZXRHcmlkUm93SGVpZ2h0KHF1ZXN0aW9uLnVzZXJBbnN3ZXIubGVuZ3RoKX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIHF1ZXN0aW9uLnVzZXJBbnN3ZXI7bGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sbGFnZS10aWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAoZ2V0SW1hZ2VVcmxzKHF1ZXN0aW9uLnVzZXJBbnN3ZXIpLGdldEltYWdlTmFtZXMocXVlc3Rpb24udXNlckFuc3dlciksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCIoaXRlbS5ydW5BSUFuc3dlcikgPyBlbnZpcm9ubWVudC50cmF4UnVuQWlDRE4gKyBpdGVtLnJ1bkFJQW5zd2VyIDogZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW0uYW5zd2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZW1hcmtzVHh0XCIgKm5nSWY9XCJxdWVzdGlvbi5yZW1hcmtzIT09JydcIj5SZW1hcmtzIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3txdWVzdGlvbi5yZW1hcmtzfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5ydW5BSURhdGE/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVtYXJrc1R4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYWlEYXRhSXRlbSBvZiBxdWVzdGlvbi51c2VyQW5zd2VyPy5bMF0/LnJ1bkFJRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFpRGF0YUl0ZW0/LmxhYmxlTmFtZSAhPT0gJ2RldGVjdGlvblN0YXR1cydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yj57e2FpRGF0YUl0ZW0ubGFibGVOYW1lfX0gOjwvYj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2FpRGF0YUl0ZW0udmFsdWU/LnRvU3RyaW5nKCk/LnBhZFN0YXJ0KDIsJzAnKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC01XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uPy5hbnN3ZXJUeXBlPT09J211bHRpcGxlSW1hZ2UnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAndGFzaycgJiYgKGhhc1JlZmVyZW5jZUltYWdlcyhxdWVzdGlvbikgfHwgaGFzQ2hlY2tsaXN0UmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKVwiPlJlZmVyZW5jZSBJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtZ3JpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc1JlZmVyZW5jZUltYWdlcyhxdWVzdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFuc3dlciBvZiBxdWVzdGlvbi5hbnN3ZXJzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFuc3dlci5yZWZlcmVuY2VJbWFnZT8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYW5zd2VyLnJlZmVyZW5jZUltYWdlO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cChnZXRSZWZJbWFnZVVybHMoYW5zd2VyLnJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKGFuc3dlci5yZWZlcmVuY2VJbWFnZSksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEZvciBDaGVja2xpc3QgVHlwZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIChoYXNJbWFnZU11bHRpUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKSB8fCBoYXNSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pIHx8IGhhc0NoZWNrbGlzdFJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbikpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ2NoZWNrbGlzdCcgJiYgaGFzSW1hZ2VNdWx0aVJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbik7IGVsc2Ugbm9NdWx0aUltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzSW1hZ2VNdWx0aVJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWZlcmVuY2UgSW1hZ2UgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0ltYWdlTXVsdGlSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYW5zd2VyIG9mIHF1ZXN0aW9uLmFuc3dlcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhbnN3ZXIubXVsdGlSZWZlcmVuY2VJbWFnZT8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS10aWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhbnN3ZXIubXVsdGlSZWZlcmVuY2VJbWFnZTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuTXVsdGlJbWFnZVBvcHVwKGdldE11bHRpUmVmSW1hZ2VVcmxzKGFuc3dlci5tdWx0aVJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKGFuc3dlci5tdWx0aVJlZmVyZW5jZUltYWdlKSxpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW0uaW1hZ2VVUkxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vTXVsdGlJbWFnZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0JyAmJiAoaGFzUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKSB8fCBoYXNDaGVja2xpc3RSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzQ2hlY2tsaXN0UmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWZlcmVuY2UgSW1hZ2UgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtZ3JpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzQ2hlY2tsaXN0UmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYW5zd2VyIG9mIHF1ZXN0aW9uLmFuc3dlcnM7bGV0IGk9aW5kZXg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS10aWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFuc3dlci5yZWZlcmVuY2VJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cChnZXRSZWZjaGVja2xpc3RJbWFnZVVybHMocXVlc3Rpb24uYW5zd2VycyksZ2V0UmVmY2hlY2tsaXN0SW1hZ2VOYW1lcyhxdWVzdGlvbi5hbnN3ZXJzKSxpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGFuc3dlci5yZWZlcmVuY2VJbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nSWY9XCJoYXNJbWFnZUFuc3dlcihxdWVzdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5VcGxvYWRlZCBJbWFnZTwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCIgW25nU3R5bGVdPVwieydncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiBnZXRHcmlkQ29sdW1ucyhxdWVzdGlvbi51c2VyQW5zd2VyLmxlbmd0aCksICdncmlkLWF1dG8tcm93cyc6IGdldEdyaWRSb3dIZWlnaHQocXVlc3Rpb24udXNlckFuc3dlci5sZW5ndGgpfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi51c2VyQW5zd2VyO2xldCBpPWluZGV4XCIgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAoZ2V0SW1hZ2VVcmxzKHF1ZXN0aW9uLnVzZXJBbnN3ZXIpLGdldEltYWdlTmFtZXMocXVlc3Rpb24udXNlckFuc3dlciksaSlcIiBzcmM9XCJ7e2Vudmlyb25tZW50LlRyYXhBbnN3ZXJDRE59fXt7aXRlbS5hbnN3ZXJ9fVwiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+VXBsb2FkZWQgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIm11bHRpSW1hZ2VDaGVja0RldGVjdGlvblN0YXR1cyhxdWVzdGlvbi51c2VyQW5zd2VyKS5rZXlQcmVzZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm11bHRpSW1hZ2VDaGVja0RldGVjdGlvblN0YXR1cyhxdWVzdGlvbi51c2VyQW5zd2VyKS5rZXlWYWx1ZSA/ICdiZ1N1Y2Nlc3MnIDogJ2JnRGFuZ2VyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0RldGVjdGlvblN0YXR1cyhxdWVzdGlvbi51c2VyQW5zd2VyPy5bMF0/LnJ1bkFJRGF0YSkua2V5VmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnTWF0Y2hlZCcgOiAnTm90IE1hdGNoZWQnIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJzogZ2V0R3JpZENvbHVtbnMocXVlc3Rpb24udXNlckFuc3dlci5sZW5ndGgpLCAnZ3JpZC1hdXRvLXJvd3MnOiBnZXRHcmlkUm93SGVpZ2h0KHF1ZXN0aW9uLnVzZXJBbnN3ZXIubGVuZ3RoKX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlc3Rpb24udXNlckFuc3dlcjtsZXQgaT1pbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAoZ2V0SW1hZ2VVcmxzKHF1ZXN0aW9uLnVzZXJBbnN3ZXIpLGdldEltYWdlTmFtZXMocXVlc3Rpb24udXNlckFuc3dlciksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIihpdGVtLnJ1bkFJQW5zd2VyKSA/IGVudmlyb25tZW50LnRyYXhSdW5BaUNETiArIGl0ZW0ucnVuQUlBbnN3ZXIgOiBlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbS5hbnN3ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVtYXJrc1R4dFwiICpuZ0lmPVwicXVlc3Rpb24ucmVtYXJrcyE9PScnXCI+UmVtYXJrcyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cXVlc3Rpb24ucmVtYXJrc319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLnVzZXJBbnN3ZXI/LlswXT8ucnVuQUlEYXRhPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbWFya3NUeHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFpRGF0YUl0ZW0gb2YgcXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5ydW5BSURhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhaURhdGFJdGVtPy5sYWJsZU5hbWUgIT09ICdkZXRlY3Rpb25TdGF0dXMnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGI+e3thaURhdGFJdGVtLmxhYmxlTmFtZX19IDo8L2I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3thaURhdGFJdGVtLnZhbHVlPy50b1N0cmluZygpPy5wYWRTdGFydCgyLCcwJyl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtNVwiICpuZ0lmPVwicXVlc3Rpb24/LmFuc3dlclR5cGU9PT0ndmlkZW8nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBUYXNrOiBNdWx0aXBsZSByZWZlcmVuY2UgaW1hZ2VzIChBcnJheSkgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAndGFzaycgJiYgaGFzUXVlc3Rpb25SZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gUXVlc3Rpb24gUmVmZXJlbmNlIEltYWdlcyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+UmVmZXJlbmNlIEltYWdlIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyc6IGdldEdyaWRDb2x1bW5zKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UubGVuZ3RoKSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzVmFsaWRJbWFnZShpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5JbWFnZVBvcHVwKGdldFJlZkltYWdlVXJscyhxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UpLGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUmVmZXJlbmNlIGltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gQ2hlY2tsaXN0OiBTaW5nbGUgcmVmZXJlbmNlIGltYWdlIChTdHJpbmcpIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzTXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbikgfHwgKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgICYmIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgIT09ICcnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIGhhc011bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pOyBlbHNlIG5vTXVsdGlJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+UmVmZXJlbmNlIEltYWdlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiBnZXRHcmlkQ29sdW1ucyhxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UubGVuZ3RoKSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2U7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtdGlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzVmFsaWRJbWFnZShpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk11bHRpSW1hZ2VQb3B1cChnZXRNdWx0aVJlZkltYWdlVXJscyhxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UpLGdldFJlZkltYWdlTmFtZXMocXVlc3Rpb24ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlKSxpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbS5pbWFnZVVSTFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUmVmZXJlbmNlIGltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vTXVsdGlJbWFnZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0gJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5SZWZlcmVuY2UgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJzogZ2V0R3JpZENvbHVtbnMoMSkgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS10aWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cDEoZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UsMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlc3Rpb24udXNlckFuc3dlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5VcGxvYWRlZCBWaWRlbzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgdy0xMDAgaC00NTBweCBwLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2aWRlbyBjb250cm9scyBjbGFzcz1cInctMTAwIGgtMTAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJ7e2Vudmlyb25tZW50LlRyYXhBbnN3ZXJDRE59fXt7aXRlbS5hbnN3ZXJ9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92aWRlbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSB0b3AtMCBlbmQtMCBtLTMgY3Vyc29yLXBvaW50ZXJcIj48c3ZnIChjbGljayk9XCJkb3dubG9hZFZpZGVvKGl0ZW0uYW5zd2VyKVwiIHRpdGxlPVwiRG93bmxvYWQgVmlkZW9cIiBpZD1cImRvd25sb2FkLWljb25cIiB3aWR0aD1cIjQ0XCIgaGVpZ2h0PVwiNDRcIiB2aWV3Qm94PVwiMCAwIDQ0IDQ0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJpY29uLW92ZXJsYXlcIj48ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8zODIyXzE5NDc5KVwiPjxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIi8+PHJlY3QgeD1cIjIuNVwiIHk9XCIxLjVcIiB3aWR0aD1cIjM5XCIgaGVpZ2h0PVwiMzlcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiNEMEQ1RERcIi8+PHBhdGggZD1cIk0yOS41IDIzLjVWMjYuODMzM0MyOS41IDI3LjI3NTQgMjkuMzI0NCAyNy42OTkzIDI5LjAxMTggMjguMDExOEMyOC42OTkzIDI4LjMyNDQgMjguMjc1NCAyOC41IDI3LjgzMzMgMjguNUgxNi4xNjY3QzE1LjcyNDYgMjguNSAxNS4zMDA3IDI4LjMyNDQgMTQuOTg4MiAyOC4wMTE4QzE0LjY3NTYgMjcuNjk5MyAxNC41IDI3LjI3NTQgMTQuNSAyNi44MzMzVjIzLjVNMTcuODMzMyAxOS4zMzMzTDIyIDIzLjVNMjIgMjMuNUwyNi4xNjY3IDE5LjMzMzNNMjIgMjMuNVYxMy41XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9nPjxkZWZzPjxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMzgyMl8xOTQ3OVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQ0XCIgaGVpZ2h0PVwiNDRcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIvPjxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+PGZlT2Zmc2V0IGR5PVwiMVwiLz48ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMVwiLz48ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIi8+PGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18zODIyXzE5NDc5XCIvPjxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMzgyMl8xOTQ3OVwiIHJlc3VsdD1cInNoYXBlXCIvPjwvZmlsdGVyPjwvZGVmcz48L3N2Zz48L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVtYXJrc1R4dFwiICpuZ0lmPVwicXVlc3Rpb24ucmVtYXJrcyE9PScnXCI+UmVtYXJrcyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cXVlc3Rpb24ucmVtYXJrc319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbCBmYWRlIG15LTAgcHktMFwiIGlkPVwiaW1hZ2VNb2RhbFwiIHRhYmluZGV4PVwiLTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImRpYWxvZ1wiIHN0eWxlPVwib3ZlcmZsb3c6aGlkZGVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZGlhbG9nIG1vZGFsLWRpYWxvZy1jZW50ZXJlZCBtb2RhbC1sZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImRvY3VtZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnQgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW9kYWwtYm9keSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gUHJldiBCdXR0b24gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaW1hZ2VMaXN0Lmxlbmd0aCA+IDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgcG9zaXRpb24tYWJzb2x1dGUgc3RhcnQtMCB0b3AtNTAgdHJhbnNsYXRlLW1pZGRsZS15IG1zLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZUltYWdlKCdwcmV2JylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjdXJyZW50SW1hZ2VJbmRleCA9PT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKAuVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBJbWFnZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJzZWxlY3RlZEltYWdlVXJsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIm1heC1oZWlnaHQ6IDg1dmg7IG1heC13aWR0aDogMTAwJTsgb2JqZWN0LWZpdDogY29udGFpbjtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW1nLWZsdWlkIHctMTAwICAgbXgtMVwiIC8+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBOZXh0IEJ1dHRvbiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJpbWFnZUxpc3QubGVuZ3RoID4gMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSBwb3NpdGlvbi1hYnNvbHV0ZSBlbmQtMCB0b3AtNTAgdHJhbnNsYXRlLW1pZGRsZS15IG1lLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZUltYWdlKCduZXh0JylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjdXJyZW50SW1hZ2VJbmRleCA9PT0gaW1hZ2VMaXN0Lmxlbmd0aCAtIDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDigLpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbCBmYWRlXCIgaWQ9XCJpbWFnZU1vZGFsMVwiIHRhYmluZGV4PVwiLTFcIiByb2xlPVwiZGlhbG9nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZGlhbG9nIG1vZGFsLWRpYWxvZy1jZW50ZXJlZCBtb2RhbC1sZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImRvY3VtZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnQgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW9kYWwtYm9keSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gSW1hZ2UgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwic2VsZWN0ZWRJbWFnZVVybFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXgtaGVpZ2h0OiA5NXZoOyBtYXgtd2lkdGg6IDEwMCU7IG9iamVjdC1maXQ6IGNvbnRhaW47XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImltZy1mbHVpZCB3LTEwMCAgIG14LTFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgcm91bmRlZC1waWxsIG0tMCBwLTJcIiAqbmdJZj1cInF1ZXN0aW9uPy5saW5rVHlwZSYmcXVlc3Rpb24/LmxpbmtxdWVzdGlvbmVuYWJsZWRcIj5MaW5rZWQgdG8gUXVlc3Rpb24ge3txdWVzdGlvbi5wYXJlbnRRdWVzdGlvbn19PC9idXR0b24+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgdGV4dC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tZGVmYXVsdCBib3JkZXItZGVmYXVsdCBtZS0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInF1ZXN0aW9uLnJlZG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNoZWNrdG9kYXlEYXRlKGNoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbz8uZGF0ZSkmJihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSAhPT0gJ3RhbmdvJyYmIWNoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbz8uYXBwcm92YWxTdGF0dXMmJihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdCYmdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSdjaGVja2xpc3QnJiZzZWxlY3RlZFN0b3Jlcy5sZW5ndGg9PT0wJiZzZWxlY3RlZFVzZXJzLmxlbmd0aD09PTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkVGFzaygncmVkbycscXVlc3Rpb24sY2hlY2tsaXN0Py5jaGVja2xpc3RJbmZvLGNoZWNrbGlzdD8uc3RvcmVQcm9maWxlLHNlY3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfNjAwNF8xMTczNClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE5LjE2OTMgMy4zMzMzMVY4LjMzMzMyTTE5LjE2OTMgOC4zMzMzMkgxNC4xNjkzTTE5LjE2OTMgOC4zMzMzMkwxNS4zMDI2IDQuNjk5OThDMTQuNDA3IDMuODAzOTEgMTMuMjk5IDMuMTQ5MzIgMTIuMDgxOSAyLjc5NzI5QzEwLjg2NDkgMi40NDUyNyA5LjU3ODUzIDIuNDA3MjcgOC4zNDI4NCAyLjY4Njg2QzcuMTA3MTYgMi45NjY0NSA1Ljk2MjQ0IDMuNTU0NTEgNS4wMTU0OSA0LjM5NjE2QzQuMDY4NTUgNS4yMzc4MiAzLjM1MDI0IDYuMzA1NjQgMi45Mjc2IDcuNDk5OThNMC44MzU5MzggMTYuNjY2NlYxMS42NjY2TTAuODM1OTM4IDExLjY2NjZINS44MzU5NE0wLjgzNTkzOCAxMS42NjY2TDQuNzAyNiAxNS4zQzUuNTk4MjMgMTYuMTk2MSA2LjcwNjI1IDE2Ljg1MDYgNy45MjMyOCAxNy4yMDI3QzkuMTQwMzEgMTcuNTU0NyAxMC40MjY3IDE3LjU5MjcgMTEuNjYyNCAxNy4zMTMxQzEyLjg5OCAxNy4wMzM1IDE0LjA0MjggMTYuNDQ1NSAxNC45ODk3IDE1LjYwMzhDMTUuOTM2NyAxNC43NjIxIDE2LjY1NSAxMy42OTQzIDE3LjA3NzYgMTIuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzYwMDRfMTE3MzRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIGZvbnQtZGVmdWx0LXRhc2tcIj5SZWRvPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tZGVmYXVsdCBib3JkZXItZGVmYXVsdCBtZS0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInF1ZXN0aW9uLnJlZG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNoZWNrdG9kYXlEYXRlKGNoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbz8uZGF0ZSkmJihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSAhPT0gJ3RhbmdvJyYmIWNoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbz8uYXBwcm92YWxTdGF0dXMmJihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfVGFza19pc0VkaXQmJnRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZT09PSd0YXNrJyYmc2VsZWN0ZWRTdG9yZXMubGVuZ3RoPT09MCYmc2VsZWN0ZWRVc2Vycy5sZW5ndGg9PT0wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZFRhc2soJ3JlZG8nLHF1ZXN0aW9uLGNoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbyxjaGVja2xpc3Q/LnN0b3JlUHJvZmlsZSxzZWN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzYwMDRfMTE3MzQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOS4xNjkzIDMuMzMzMzFWOC4zMzMzMk0xOS4xNjkzIDguMzMzMzJIMTQuMTY5M00xOS4xNjkzIDguMzMzMzJMMTUuMzAyNiA0LjY5OTk4QzE0LjQwNyAzLjgwMzkxIDEzLjI5OSAzLjE0OTMyIDEyLjA4MTkgMi43OTcyOUMxMC44NjQ5IDIuNDQ1MjcgOS41Nzg1MyAyLjQwNzI3IDguMzQyODQgMi42ODY4NkM3LjEwNzE2IDIuOTY2NDUgNS45NjI0NCAzLjU1NDUxIDUuMDE1NDkgNC4zOTYxNkM0LjA2ODU1IDUuMjM3ODIgMy4zNTAyNCA2LjMwNTY0IDIuOTI3NiA3LjQ5OTk4TTAuODM1OTM4IDE2LjY2NjZWMTEuNjY2Nk0wLjgzNTkzOCAxMS42NjY2SDUuODM1OTRNMC44MzU5MzggMTEuNjY2Nkw0LjcwMjYgMTUuM0M1LjU5ODIzIDE2LjE5NjEgNi43MDYyNSAxNi44NTA2IDcuOTIzMjggMTcuMjAyN0M5LjE0MDMxIDE3LjU1NDcgMTAuNDI2NyAxNy41OTI3IDExLjY2MjQgMTcuMzEzMUMxMi44OTggMTcuMDMzNSAxNC4wNDI4IDE2LjQ0NTUgMTQuOTg5NyAxNS42MDM4QzE1LjkzNjcgMTQuNzYyMSAxNi42NTUgMTMuNjk0MyAxNy4wNzc2IDEyLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF82MDA0XzExNzM0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBmb250LWRlZnVsdC10YXNrXCI+UmVkbzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc20gIGJvcmRlci12YWwxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhcXVlc3Rpb24udGFzayYmIXF1ZXN0aW9uLnRhc2tJZCYmdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlPT09J2NoZWNrbGlzdCcmJihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSAhPT0gJ3RhbmdvJyYmIWNoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbz8uYXBwcm92YWxTdGF0dXMmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X1Rhc2tfaXNFZGl0JiZzZWxlY3RlZFN0b3Jlcy5sZW5ndGg9PT0wJiZzZWxlY3RlZFVzZXJzLmxlbmd0aD09PTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkVGFzaygnY3JlYXRldGFzaycscXVlc3Rpb24sY2hlY2tsaXN0Py5jaGVja2xpc3RJbmZvLGNoZWNrbGlzdD8uc3RvcmVQcm9maWxlLHNlY3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS42NjkzIDEuNjY2NzVINS4wMDI2QzQuNTYwNTggMS42NjY3NSA0LjEzNjY1IDEuODQyMzQgMy44MjQwOSAyLjE1NDlDMy41MTE1MyAyLjQ2NzQ2IDMuMzM1OTQgMi44OTEzOSAzLjMzNTk0IDMuMzMzNDFWMTYuNjY2N0MzLjMzNTk0IDE3LjEwODggMy41MTE1MyAxNy41MzI3IDMuODI0MDkgMTcuODQ1M0M0LjEzNjY1IDE4LjE1NzggNC41NjA1OCAxOC4zMzM0IDUuMDAyNiAxOC4zMzM0SDE1LjAwMjZDMTUuNDQ0NiAxOC4zMzM0IDE1Ljg2ODYgMTguMTU3OCAxNi4xODExIDE3Ljg0NTNDMTYuNDkzNyAxNy41MzI3IDE2LjY2OTMgMTcuMTA4OCAxNi42NjkzIDE2LjY2NjdWNi42NjY3NU0xMS42NjkzIDEuNjY2NzVMMTYuNjY5MyA2LjY2Njc1TTExLjY2OTMgMS42NjY3NVY2LjY2Njc1SDE2LjY2OTNNMTAuMDAyNiAxNS4wMDAxVjEwLjAwMDFNNy41MDI2IDEyLjUwMDFIMTIuNTAyNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgZm9udC10YXNrXCI+Q3JlYXRlIFRhc2s8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLnRhc2smJnF1ZXN0aW9uLnRhc2tJZCAmJnRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSE9PSd0YXNrJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBib3JkZXItdmFsMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0YXNrcmVkaXJlY3QocXVlc3Rpb24sY2hlY2tsaXN0Py5zdG9yZVByb2ZpbGUsY2hlY2tsaXN0Py5jaGVja2xpc3RJbmZvKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtdGFza1wiPlZpZXcgVGFzazwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0xMCBteS01XCIgKm5nSWY9XCJpbWFnZUNoZWNrbGlzdC5pbmNsdWRlcyhzZWxlY3QpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCIgKm5nSWY9XCJjbGllbnREYXRhLmxvZ28mJmNsaWVudERhdGEubG9nbyE9PScnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJtdC01IG1iLTMgdGV4dC1jZW50ZXIgaWNvbnNpemVcIiBzcmM9XCJ7e2NsaWVudERhdGEubG9nb319XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2PiA8aDI+Q2hlY2tsaXN0IE5hbWUgOiB7e3RoaXMuY2hlY2tsaXN0TmFtZX19PC9oMj4gPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQgIT09ICdvdXRzaWRlYnVzaW5lc3Nob3Vyc3F1ZXVldHJhY2tpbmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgbXktMyBtdC01XCIgKm5nRm9yPVwibGV0IGl0ZW0gIG9mIG1vYmlsZXVzYWdlRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC0xMCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkNoZWNrbGlzdCBOYW1lPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IHt7dGhpcy5jaGVja2xpc3ROYW1lfX0gPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIj5TdG9yZSBOYW1lPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IHt7aXRlbS5zdG9yZU5hbWV9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIiAqbmdJZj1cIml0ZW0uZG93bl90aW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkF2ZXJhZ2UgRG93bnRpbWU8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiICpuZ0lmPVwiaXRlbS5kb3duX3RpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IHt7aXRlbS5kb3duX3RpbWV9fSBNaW5zPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJyb3cgdy0xMDAgcWEtYm9kcmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGkgY2xhc3M9XCJxYS1oZWFkaW5nXCI+IHt7aXRlbS5zdG9yZU5hbWV9fSA8L2xpPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbXktMlwiICpuZ0Zvcj1cImxldCBkZXRlY3Rpb24gb2YgaXRlbT8uaW1hZ2VVcmxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwidy0xMDAgaC01MDBweCByb3VuZGVkLXRvcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cInt7ZW52aXJvbm1lbnQuVHJheEFJaW1hZ2VjaGVja2xpc3RDRE59fXt7ZGV0ZWN0aW9ufX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgbXQtM1wiPiB7e3RoaXMuY2hlY2tsaXN0TmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbXktMlwiICpuZ0Zvcj1cImxldCBkZXRlY3Rpb24gb2YgaXRlbT8uaW1hZ2VzRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQ9PT0naW52ZW50b3J5Y291bnQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LmRhdGVfdGltZXN0YW1wXCI+RGV0ZWN0aW9uIFRpbWUgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2RldGVjdGlvbi5kYXRlX3RpbWVzdGFtcH19IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCB0ZXh0LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zXCIgKm5nSWY9XCJkZXRlY3Rpb24/LmNhcl9jb3VudFwiPk5vIG9mXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FycyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGV0ZWN0aW9uLmNhcl9jb3VudH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkPT09J251bWJlcnBsYXRlaW5mbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGVjdGlvbj8uY2FyX2xpY2Vuc2VfaWRcIj5OdW1iZXIgUGxhdGUgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2RldGVjdGlvbi5jYXJfbGljZW5zZV9pZH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IHRleHQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5kYXRlX3RpbWVzdGFtcFwiPkVudHJ5IFRpbWUgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2RldGVjdGlvbi5kYXRlX3RpbWVzdGFtcH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkPT09J2NhcnNhdHRlbmRlZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGVjdGlvbj8uaW50ZXJhY3RlZF9wZXJzb25fY291bnRcIj5OdW1iZXIgb2ZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZW9wbGUgSW50ZXJhY3RlZCA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGV0ZWN0aW9uLmludGVyYWN0ZWRfcGVyc29uX2NvdW50fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgdGV4dC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LmNhcl9yZWdfbnVtYmVyXCI+TnVtYmVyIFBsYXRlIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkZXRlY3Rpb24/LmNhcl9yZWdfbnVtYmVyfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5jYXJfcmVnX251bWJlclwiPkRldGVjdGlvbiBUaW1lIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkZXRlY3Rpb24/LmRhdGVfdGltZXN0YW1wfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgdGV4dC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LmludGVyYWN0ZWRfZHVyYXRpb25faW5fc2Vjc1wiPlRpbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVudCA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGV0ZWN0aW9uLmludGVyYWN0ZWRfZHVyYXRpb25faW5fc2Vjc319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pbnM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZD09PSd2ZWhpY2xlX2NoZWNrX2luJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5kYXRlX3RpbWVzdGFtcFwiPkRldGVjdGlvbiBUaW1lIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkZXRlY3Rpb24uZGF0ZV90aW1lc3RhbXB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCB0ZXh0LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGVjdGlvbj8uZGF0ZV90aW1lc3RhbXBcIj5TbG90IDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkZXRlY3Rpb24uc2xvdF9pZH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQ9PT0nb3V0c2lkZWJ1c2luZXNzaG91cnNxdWV1ZXRyYWNraW5nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbmFwY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHB4LTEwIG10LTUgbWFyZ2luLWxlZnQtc2lkZSBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwiZGV0ZWN0aW9uPy5zdG9yZU5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIj5TdG9yZSBOYW1lPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2RldGVjdGlvbi5zdG9yZU5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkRldGVjdGlvbiBTdGF0dXM8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGVjdGlvbj8uZGV0ZWN0aW9uU3RhdHVzOyBlbHNlIG5vRGV0ZWN0aW9uU3RhdHVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj4gOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1kYW5nZXJcIiAqbmdJZj1cImRldGVjdGlvbj8uRmxhZ1wiPkJyZWFjaGVkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTMgYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2Vzc1wiICpuZ0lmPVwiIWRldGVjdGlvbj8uRmxhZ1wiPk5vdCBCcmVhY2hlZDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1kYW5nZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LmRldGVjdGlvblN0YXR1cyA9PT0gJ0JyZWFjaGVkJ1wiPkJyZWFjaGVkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTMgYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2Vzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGVjdGlvbj8uZGV0ZWN0aW9uU3RhdHVzID09PSAnTm90IEJyZWFjaGVkJ1wiPk5vdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWNoZWQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1kYW5nZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LmRldGVjdGlvblN0YXR1cyA9PT0gJ09mZmxpbmUnXCI+T2ZmbGluZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9EZXRlY3Rpb25TdGF0dXM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+IDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1kYW5nZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5GbGFnXCI+QnJlYWNoZWQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTMgYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2Vzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhZGV0ZWN0aW9uPy5GbGFnXCI+Tm90XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWNoZWQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIj5EYXRlPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2RldGVjdGlvbi5EYXRlfGRhdGU6J2RkLU1NLXl5eXknXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSA8L3NwYW4+PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIiAqbmdJZj1cImRldGVjdGlvbj8uZGV0ZWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkRldGVjdGlvbiBDb3VudDwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+OiA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcy0zXCI+e3tkZXRlY3Rpb24uZGV0ZWN0aW9ucy5sZW5ndGh9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwiZGV0ZWN0aW9uPy5kZXRlY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+RGV0ZWN0aW9uIGF0PC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2RldGVjdGlvbi5zdG9yZU5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwiZGV0ZWN0aW9uPy5kb3dudGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkRvd250aW1lPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nSWY9XCJkZXRlY3Rpb24/LmRvd250aW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2RldGVjdGlvbi5kb3dudGltZX19IG1pbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIkRvd250aW1lIG1heSByZXN1bHQgaW4gaW5hY2N1cmF0ZSBkYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ0b3BcIiBjb250YWluZXI9XCJib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNVwiIGhlaWdodD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNSAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuNjY2NjcgNS4zMzIwM1Y3Ljk5ODdNNy42NjY2NyAxMC42NjU0SDcuNjczMzNNMTQuMzMzMyA3Ljk5ODdDMTQuMzMzMyAxMS42ODA2IDExLjM0ODYgMTQuNjY1NCA3LjY2NjY3IDE0LjY2NTRDMy45ODQ3NyAxNC42NjU0IDEgMTEuNjgwNiAxIDcuOTk4N0MxIDQuMzE2OCAzLjk4NDc3IDEuMzMyMDMgNy42NjY2NyAxLjMzMjAzQzExLjM0ODYgMS4zMzIwMyAxNC4zMzMzIDQuMzE2OCAxNC4zMzMzIDcuOTk4N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24ucGF0aCAmJiBkZXRlY3Rpb24ucGF0aCAhPT0gbnVsbCAmJiBkZXRlY3Rpb24ucGF0aCAhPT0gdW5kZWZpbmVkICYmIGRldGVjdGlvbi5wYXRoICE9PSAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJ3LTEwMCBoLTUwMHB4IHJvdW5kZWQtdG9wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwie3tlbnZpcm9ubWVudC5UcmF4QUljaGVja2xpc3RDRE59fXt7ZGV0ZWN0aW9uLnBhdGh9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtdC0zXCI+IHt7dGhpcy5jaGVja2xpc3ROYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQgPT09ICdvdXRzaWRlYnVzaW5lc3Nob3Vyc3F1ZXVldHJhY2tpbmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgbXktMyBtdC01XCIgKm5nRm9yPVwibGV0IGl0ZW0gIG9mIG1vYmlsZXVzYWdlRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC0xMCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkNoZWNrbGlzdCBOYW1lPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IHt7dGhpcy5jaGVja2xpc3ROYW1lfX0gPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG15LTJcIiAqbmdGb3I9XCJsZXQgZGV0ZWN0aW9uIG9mIGl0ZW0/LmltYWdlc0RhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZD09PSdvdXRzaWRlYnVzaW5lc3Nob3Vyc3F1ZXVldHJhY2tpbmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic25hcGNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHB4LTEwIG10LTUgbWFyZ2luLWxlZnQtc2lkZSBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nSWY9XCJkZXRlY3Rpb24/LnN0b3JlTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+U3RvcmUgTmFtZTwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+OiA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2RldGVjdGlvbi5zdG9yZU5hbWV9fTwvc3Bhbj48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkRldGVjdGlvbiBTdGF0dXM8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInVuaS1zdWJ0aXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LmRldGVjdGlvblN0YXR1c1wiPiA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zIGJhZGdlIGJhZGdlLWxpZ2h0LWRhbmdlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5kZXRlY3Rpb25TdGF0dXMgPT09ICdEZXRlY3RlZCdcIj5EZXRlY3RlZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTMgYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2Vzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5kZXRlY3Rpb25TdGF0dXMgPT09ICdOb3QgRGV0ZWN0ZWQnXCI+Tm90XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERldGVjdGVkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1kYW5nZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGVjdGlvbj8uZGV0ZWN0aW9uU3RhdHVzID09PSAnT2ZmbGluZSdcIj5PZmZsaW5lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGUgdGV4dC1lbmRcIj5EYXRlPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXMtM1wiPnt7ZGV0ZWN0aW9uLkRhdGV9fSA8L3NwYW4+PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nSWY9XCJkZXRlY3Rpb24/LmRldGVjdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkRldGVjdGlvbiBDb3VudDwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+OiA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2RldGVjdGlvbi5kZXRlY3Rpb25zLmxlbmd0aH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nSWY9XCJkZXRlY3Rpb24/LmRldGVjdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkRldGVjdGlvbiBhdDwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkZXRlY3Rpb25BdCAgb2YgZGV0ZWN0aW9uLmRldGVjdGlvbnM7IGxldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWNrZ3JvdW5kR3JheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImkgPCA1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2RldGVjdGlvbkF0fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRldGVjdGlvbi5kZXRlY3Rpb25zLmxlbmd0aCA+IDVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTMgYmFkZ2UgYmFja2dyb3VuZEdyYXlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3t7IGRldGVjdGlvbi5kZXRlY3Rpb25zLmxlbmd0aCAtIDUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIiAqbmdJZj1cImRldGVjdGlvbj8uZG93bnRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkRvd250aW1lPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwiZGV0ZWN0aW9uPy5kb3dudGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXMtM1wiPnt7ZGV0ZWN0aW9uLmRvd250aW1lfX0gbWluc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIkRvd250aW1lIG1heSByZXN1bHQgaW4gaW5hY2N1cmF0ZSBkYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInRvcFwiIGNvbnRhaW5lcj1cImJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNVwiIGhlaWdodD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE1IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuNjY2NjcgNS4zMzIwM1Y3Ljk5ODdNNy42NjY2NyAxMC42NjU0SDcuNjczMzNNMTQuMzMzMyA3Ljk5ODdDMTQuMzMzMyAxMS42ODA2IDExLjM0ODYgMTQuNjY1NCA3LjY2NjY3IDE0LjY2NTRDMy45ODQ3NyAxNC42NjU0IDEgMTEuNjgwNiAxIDcuOTk4N0MxIDQuMzE2OCAzLjk4NDc3IDEuMzMyMDMgNy42NjY2NyAxLjMzMjAzQzExLjM0ODYgMS4zMzIwMyAxNC4zMzMzIDQuMzE2OCAxNC4zMzMzIDcuOTk4N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTEwIG15LTVcIiAqbmdJZj1cInZpZGVvQ2hlY2tsaXN0LmluY2x1ZGVzKHNlbGVjdClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIiAqbmdJZj1cImNsaWVudERhdGEubG9nbyYmY2xpZW50RGF0YS5sb2dvIT09JydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIm10LTUgbWItMyB0ZXh0LWNlbnRlciBpY29uc2l6ZVwiIHNyYz1cInt7Y2xpZW50RGF0YS5sb2dvfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTMgbXQtNVwiICpuZ0Zvcj1cImxldCBpdGVtICBvZiBjdXN0b21lcnVuYXR0ZW5kZWREYXRhXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtMTAgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+Q2hlY2tsaXN0IE5hbWU8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInVuaS1zdWJ0aXRsZVwiPjogPHNwYW4gY2xhc3M9XCJtcy0zXCI+e3t0aGlzLmNoZWNrbGlzdE5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPlN0b3JlIE5hbWU8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInVuaS1zdWJ0aXRsZVwiPjogPHNwYW4gY2xhc3M9XCJtcy0zXCI+e3tpdGVtLnN0b3JlTmFtZX19PC9zcGFuPjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwicm93IHctMTAwIG1hcmdpbi10b3Atc2lkZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwicWEtaGVhZGluZ1wiPiA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIiAqbmdGb3I9XCJsZXQgZGV0ZWN0aW9uIG9mIGl0ZW0uaW1hZ2VzRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHB4LTEwIG10LTUgbWFyZ2luLWxlZnQtc2lkZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdCE9PSdzdXNwaWNpb3VzYWN0aXZpdHknXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5kZXRlY3Rpb25TdGF0dXM7IGVsc2Ugbm9EZXRlY3Rpb25TdGF0dXNDYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+RGV0ZWN0aW9uIFN0YXR1czwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9EZXRlY3Rpb25TdGF0dXNDYXJkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwiZGV0ZWN0aW9uPy5BbnN3ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+RGV0ZWN0aW9uIFN0YXR1czwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGVjdGlvbj8uZGV0ZWN0aW9uU3RhdHVzOyBlbHNlIG5vRGV0ZWN0aW9uU3RhdHVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJtcy0zIGJhZGdlIGJhZGdlLWxpZ2h0LWRhbmdlclwiICpuZ0lmPVwiZGV0ZWN0aW9uPy5BbnN3ZXI9PT0ncmVqZWN0ZWQnXCI+QnJlYWNoZWQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1zdWNjZXNzXCIgKm5nSWY9XCJkZXRlY3Rpb24/LkFuc3dlcj09PSdhcHByb3ZlZCdcIj5Ob3QgQnJlYWNoZWQ8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTMgYmFkZ2UgYmFkZ2UtbGlnaHQtZGFuZ2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5kZXRlY3Rpb25TdGF0dXMgPT09ICdCcmVhY2hlZCdcIj5CcmVhY2hlZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zIGJhZGdlIGJhZGdlLWxpZ2h0LXN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LmRldGVjdGlvblN0YXR1cyA9PT0gJ05vdCBCcmVhY2hlZCdcIj5Ob3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFjaGVkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTMgYmFkZ2UgYmFkZ2UtbGlnaHQtZGFuZ2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5kZXRlY3Rpb25TdGF0dXMgPT09ICdPZmZsaW5lJ1wiPk9mZmxpbmU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vRGV0ZWN0aW9uU3RhdHVzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwiZGV0ZWN0aW9uPy5BbnN3ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTMgYmFkZ2UgYmFkZ2UtbGlnaHQtZGFuZ2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGVjdGlvbj8uQW5zd2VyPT09J3JlamVjdGVkJ1wiPkJyZWFjaGVkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zIGJhZGdlIGJhZGdlLWxpZ2h0LXN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5BbnN3ZXI9PT0nYXBwcm92ZWQnXCI+Tm90XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWNoZWQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIj5EYXRlPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2RldGVjdGlvbi5kYXRlfGRhdGU6J2RkLU1NLXl5eXknIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwiZGV0ZWN0aW9uPy5jb25maWdUaW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+Q29uZmlndXJlZCBUaW1lPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nSWY9XCJkZXRlY3Rpb24/LmNvbmZpZ1RpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInVuaS1zdWJ0aXRsZSBcIj46IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2RldGVjdGlvbi5jb25maWdUaW1lIH19PC9zcGFuPjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nSWY9XCJkZXRlY3Rpb24/LmR1cmF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+RHVyYXRpb248L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIiAqbmdJZj1cImRldGVjdGlvbj8uZHVyYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInVuaS1zdWJ0aXRsZVwiPjogPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXMtM1wiPnt7ZGV0ZWN0aW9uLmR1cmF0aW9uIH19IE1pbnMgPC9zcGFuPjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nSWY9XCJkZXRlY3Rpb24/LmRvd25UaW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+RG93bnRpbWU8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIiAqbmdJZj1cImRldGVjdGlvbj8uZG93blRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInVuaS1zdWJ0aXRsZVwiPjogPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXMtM1wiPnt7ZGV0ZWN0aW9uLmRvd25UaW1lIH19IE1pbnMgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBuZ2JUb29sdGlwPVwiRG93bnRpbWUgbWF5IHJlc3VsdCBpbiBpbmFjY3VyYXRlIGRhdGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwidG9wXCIgY29udGFpbmVyPVwiYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE1IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuNjY2NjcgNS4zMzIwM1Y3Ljk5ODdNNy42NjY2NyAxMC42NjU0SDcuNjczMzNNMTQuMzMzMyA3Ljk5ODdDMTQuMzMzMyAxMS42ODA2IDExLjM0ODYgMTQuNjY1NCA3LjY2NjY3IDE0LjY2NTRDMy45ODQ3NyAxNC42NjU0IDEgMTEuNjgwNiAxIDcuOTk4N0MxIDQuMzE2OCAzLjk4NDc3IDEuMzMyMDMgNy42NjY2NyAxLjMzMjAzQzExLjM0ODYgMS4zMzIwMyAxNC4zMzMzIDQuMzE2OCAxNC4zMzMzIDcuOTk4N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIG1pbi1oLTQ1cHggcHgtMCBteS0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cIm1lLTMgc3RvcmUtdGl0bGVcIj57e2l0ZW0uc3RvcmVOYW1lfX08L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LmN1c3RvbWVyX2lkXCI+Q3VzdCBJRCA6IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2RldGVjdGlvbi5jdXN0b21lcl9pZH19PC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5xdWV1ZV9pZFwiPlF1ZXVlIElEIDogPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXMtM1wiPnt7ZGV0ZWN0aW9uLnF1ZXVlX2lkfX08L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/Lm9wdHVtX2lkXCI+T3B0b20gSUQgOiA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcy0zXCI+e3tkZXRlY3Rpb24ub3B0dW1faWR9fTwvc3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cIm1zLTIgYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdFwiICpuZ0lmPVwiZGV0ZWN0aW9uPy5kYXRlXCI+RGF0ZSA6IHt7ZGV0ZWN0aW9uLmRhdGV8ZGF0ZTonZGQtTU0teXl5eScgfX08L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJtcy0zIGJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHRcIiAqbmdJZj1cImRldGVjdGlvbj8uY29uZmlnVGltZVwiPkluc3BlY3Rpb24gdGltZSA6IHt7ZGV0ZWN0aW9uLmNvbmZpZ1RpbWV9fTwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zIGJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGVjdGlvbj8udGVtcF9pZFwiPlRlbXBJZCA6IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2RldGVjdGlvbi50ZW1wX2lkfX08L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LnRpbWVfc3BlbmRcIj5UaW1lc3BlbmQgOiA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcy0zXCI+e3tkZXRlY3Rpb24udGltZV9zcGVuZH19TWluczwvc3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gzPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU3dpdGNoIHRvZ2dsZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIHRleHQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5lbnRyeV90aW1lXCI+RW50cnkgdGltZSA6IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcy0zXCI+e3tkZXRlY3Rpb24uZW50cnlfdGltZX19PC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zIGJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LmV4aXRfdGltZVwiPkV4aXQgdGltZSA6IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcy0zXCI+e3tkZXRlY3Rpb24uZXhpdF90aW1lfX08L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTMgYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2Vzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGVjdGlvbj8uYWRoZXJlbmNlX3JhdGVcIj5BZGhlcmVuY2UgUmF0ZSA6IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcy0zXCI+e3tkZXRlY3Rpb24uYWRoZXJlbmNlX3JhdGV9fTwvc3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IHRleHQtY2FwaXRhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGVjdGlvbj8uY2F0ZWdvcnlcIj4gPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2RldGVjdGlvbi5jYXRlZ29yeX19PC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zIGJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LmN1c3RvbWVyX2VudHJ5X3RpbWVcIj5FbnRyeSB0aW1lIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcy0zXCI+e3tkZXRlY3Rpb24uY3VzdG9tZXJfZW50cnlfdGltZX19PC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zIGJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LmN1c3RvbWVyX2V4aXRfdGltZVwiPkV4aXQgdGltZSA6IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcy0zXCI+e3tkZXRlY3Rpb24uY3VzdG9tZXJfZXhpdF90aW1lfX08L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0wXCIgKm5nSWY9XCJzZWxlY3QgIT09J2V5ZXRlc3QnJiZzZWxlY3QgIT0nZmFjdG9yeSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2aWRlbyBjb250cm9scyBjbGFzcz1cInctMTAwIGgtNDUwcHggcm91bmRlZC10b3BcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cInt7ZW52aXJvbm1lbnQuVHJheEFJY2hlY2tsaXN0Q0ROfX17e2RldGVjdGlvbi52aWRlb19wYXRofX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92aWRlbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0wXCIgKm5nSWY9XCJzZWxlY3QgPT09J2V5ZXRlc3QnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlkZW8gY29udHJvbHMgY2xhc3M9XCJ3LTEwMCBoLTQ1MHB4IHJvdW5kZWQtdG9wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJ7e2Vudmlyb25tZW50LkV5ZVRlc3RDRE59fXt7ZGV0ZWN0aW9uLnZpZGVvX3BhdGh9fVwiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92aWRlbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0wXCIgKm5nSWY9XCJzZWxlY3QgPT09J2ZhY3RvcnknXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlkZW8gY29udHJvbHMgY2xhc3M9XCJ3LTEwMCBoLTQ1MHB4IHJvdW5kZWQtdG9wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJ7e2Vudmlyb25tZW50LmZhY3RvcnlDRE59fXt7ZGV0ZWN0aW9uLnZpZGVvX3BhdGh9fVwiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92aWRlbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3QgPT09J3N0b3Jlb3BlbmFuZGNsb3NlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiICpuZ0lmPVwiY2xpZW50RGF0YS5sb2dvJiZjbGllbnREYXRhLmxvZ28hPT0nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibXQtNSBtYi0zIHRleHQtY2VudGVyIGljb25zaXplXCIgc3JjPVwie3tjbGllbnREYXRhLmxvZ299fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtMTAgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkNoZWNrbGlzdCBOYW1lIDogPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj4ge3t0aGlzLmNoZWNrbGlzdE5hbWV9fSA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbWFyZ2luLXRvcC1zaWRlXCIgKm5nRm9yPVwibGV0IHN0b3JlIG9mIHN0b3JlT3BlbmNsb3NlVmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIG14LTggbXktOFwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHN0b3JlLmltYWdlc0RhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbmFwY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtMTAgbXQtNSBtYXJnaW4tbGVmdC1zaWRlIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIiAqbmdJZj1cIml0ZW0/LnN0b3JlTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+U3RvcmUgTmFtZTwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIiAqbmdJZj1cIml0ZW0/LnN0b3JlTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXMtM1wiPnt7aXRlbS5zdG9yZU5hbWV9fTwvc3Bhbj48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIiAqbmdJZj1cIml0ZW0/LmJ1ZmZlcl9vcGVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIj5CdWZmZXIgZm9yIE9wZW4gVGltZSA8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nSWY9XCJpdGVtPy5idWZmZXJfb3BlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IDxzcGFuIGNsYXNzPVwibXMtM1wiPnt7aXRlbS5idWZmZXJfb3BlbiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5zPC9zcGFuPjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwiaXRlbT8uYnVmZmVyX2Nsb3NlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIj5CdWZmZXIgZm9yIENsb3NlIFRpbWUgPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwiaXRlbT8uYnVmZmVyX2Nsb3NlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInVuaS1zdWJ0aXRsZVwiPjogPHNwYW4gY2xhc3M9XCJtcy0zXCI+e3tpdGVtLmJ1ZmZlcl9jbG9zZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5zPC9zcGFuPjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+RGV0ZWN0aW9uIFN0YXR1czwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+IDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1kYW5nZXJcIiAqbmdJZj1cIml0ZW0/LkZsYWdcIj5CcmVhY2hlZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTMgYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2Vzc1wiICpuZ0lmPVwiIWl0ZW0/LkZsYWdcIj5Ob3QgQnJlYWNoZWQ8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1kYW5nZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0/LmRldGVjdGlvblN0YXR1cyA9PT0gJ0JyZWFjaGVkJ1wiPkJyZWFjaGVkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1zdWNjZXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtPy5kZXRlY3Rpb25TdGF0dXMgPT09ICdOb3QgQnJlYWNoZWQnXCI+Tm90XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFjaGVkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1kYW5nZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0/LmRldGVjdGlvblN0YXR1cyA9PT0gJ09mZmxpbmUnXCI+T2ZmbGluZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+RGF0ZTwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+OiA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2l0ZW0uZGF0ZXxkYXRlOidkZC1NTS15eXl5JyB9fSA8L3NwYW4+PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nSWY9XCJpdGVtPy5kb3dudGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+RG93bnRpbWU8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nSWY9XCJpdGVtPy5kb3dudGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IDxzcGFuIGNsYXNzPVwibXMtM1wiPnt7aXRlbS5kb3dudGltZX19IG1pbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gbmdiVG9vbHRpcD1cIkRvd250aW1lIG1heSByZXN1bHQgaW4gaW5hY2N1cmF0ZSBkYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInRvcFwiIGNvbnRhaW5lcj1cImJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNSAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk03LjY2NjY3IDUuMzMyMDNWNy45OTg3TTcuNjY2NjcgMTAuNjY1NEg3LjY3MzMzTTE0LjMzMzMgNy45OTg3QzE0LjMzMzMgMTEuNjgwNiAxMS4zNDg2IDE0LjY2NTQgNy42NjY2NyAxNC42NjU0QzMuOTg0NzcgMTQuNjY1NCAxIDExLjY4MDYgMSA3Ljk5ODdDMSA0LjMxNjggMy45ODQ3NyAxLjMzMjAzIDcuNjY2NjcgMS4zMzIwM0MxMS4zNDg2IDEuMzMyMDMgMTQuMzMzMyA0LjMxNjggMTQuMzMzMyA3Ljk5ODdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtLTAgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1nIG10LTQgcHgtMyBwb3NpdGlvbi1yZWxhdGl2ZVwiICpuZ0lmPVwiIWl0ZW0ub3BlblRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJldmlldyBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjNcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjMgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPVwiR3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjUgNi4zMjIyN0g2LjUxTTE2LjI1IDkuMzIyMjdIMjEuNUwxOCAxNi4zMjIzTDE0LjkxIDEyLjAwMjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+IFxcXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xLjUgMTYuMzIyOUg1LjI2QzUuNjMyNzMgMTYuMzI1NSA1Ljk5ODc3IDE2LjIyMzkgNi4zMTY4MiAxNi4wMjk1QzYuNjM0ODcgMTUuODM1MiA2Ljg5MjI4IDE1LjU1NTggNy4wNiAxNS4yMjI5TDguNSAxMi4zMjI5TTEuNSAxOC4zMjI5VjE0LjMyMjlNMTcuNSA2LjgyMjkxTDEzLjUgMTQuODIyOUwzLjExIDkuNjIyOTFDMi40MjAzMyA5LjI3NTUzIDEuODk2MzUgOC42NjkxIDEuNjUyNzIgNy45MzYzMkMxLjQwOTA5IDcuMjAzNTQgMS40NjU2NCA2LjQwNDEgMS44MSA1LjcxMjkxTDMuMTkgMi45MjI5MUMzLjM2MiAyLjU4MDE0IDMuNTk5ODQgMi4yNzQ2IDMuODg5OTQgMi4wMjM3NUM0LjE4MDAzIDEuNzcyOSA0LjUxNjcgMS41ODE2NSA0Ljg4MDcyIDEuNDYwOTNDNS4yNDQ3NCAxLjM0MDIxIDUuNjI4OTcgMS4yOTIzOSA2LjAxMTQ3IDEuMzIwMThDNi4zOTM5OCAxLjM0Nzk3IDYuNzY3MjYgMS40NTA4NCA3LjExIDEuNjIyOTFMMTcuNSA2LjgyMjkxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBydnR4dCBtdC01IHRleHRjbHJcIj5QcmV2aWV3IG5vdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlZnJlc2h0eHQgbXQtMiB0ZXh0Y2xyXCI+VGhlIHNlbGVjdGVkIGNhbWVyYSBpc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90IGF2YWlsYWJsZSBhdCB0aGUgbW9tZW50Ljwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiaXRlbS5vcGVuVGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJteC0xIG9wZW5jbG9zZXNuYXBJTUdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJ7e2Vudmlyb25tZW50LlRyYXhPcGVuY2xvc2VjaGVja2xpc3RDRE59fXt7aXRlbS5zdG9yZUlkfX0ve3tpdGVtLmRhdGVTdHJpbmd8ZGF0ZTonZGQtTU0teXl5eSd9fS9vcGVyYXRpb25fc25hcHMvb3Blbi5qcGVnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwib3BlbiBjbG9zZSBzbmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtc3RhY2sgbXgtMSBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbmFwdGV4dFwiPk9wZW5pbmcgU25hcDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbmFwdGltZVwiPnt7aXRlbS5vcGVuVGltZX19IC1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLmRhdGV9fSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IHNuYXBiYWRnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtPy5vbm9wZW5UaW1lRmxhZ1wiPk9uIFRpbWU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWRhbmdlciBzbmFwYmFkZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbT8ubGF0ZW9wZW5UaW1lRmxhZ1wiPkxhdGUgT3Blbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtd2FybmluZyBzbmFwYmFkZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbT8uZWFybHlvcGVuVGltZUZsYWdcIj5FYXJseSBPcGVuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1nIG10LTQgcHgtMyBwb3NpdGlvbi1yZWxhdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhaXRlbS5jbG9zZVRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJldmlldyBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjNcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjMgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPVwiR3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjUgNi4zMjIyN0g2LjUxTTE2LjI1IDkuMzIyMjdIMjEuNUwxOCAxNi4zMjIzTDE0LjkxIDEyLjAwMjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+IFxcXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xLjUgMTYuMzIyOUg1LjI2QzUuNjMyNzMgMTYuMzI1NSA1Ljk5ODc3IDE2LjIyMzkgNi4zMTY4MiAxNi4wMjk1QzYuNjM0ODcgMTUuODM1MiA2Ljg5MjI4IDE1LjU1NTggNy4wNiAxNS4yMjI5TDguNSAxMi4zMjI5TTEuNSAxOC4zMjI5VjE0LjMyMjlNMTcuNSA2LjgyMjkxTDEzLjUgMTQuODIyOUwzLjExIDkuNjIyOTFDMi40MjAzMyA5LjI3NTUzIDEuODk2MzUgOC42NjkxIDEuNjUyNzIgNy45MzYzMkMxLjQwOTA5IDcuMjAzNTQgMS40NjU2NCA2LjQwNDEgMS44MSA1LjcxMjkxTDMuMTkgMi45MjI5MUMzLjM2MiAyLjU4MDE0IDMuNTk5ODQgMi4yNzQ2IDMuODg5OTQgMi4wMjM3NUM0LjE4MDAzIDEuNzcyOSA0LjUxNjcgMS41ODE2NSA0Ljg4MDcyIDEuNDYwOTNDNS4yNDQ3NCAxLjM0MDIxIDUuNjI4OTcgMS4yOTIzOSA2LjAxMTQ3IDEuMzIwMThDNi4zOTM5OCAxLjM0Nzk3IDYuNzY3MjYgMS40NTA4NCA3LjExIDEuNjIyOTFMMTcuNSA2LjgyMjkxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBydnR4dCBtdC01IHRleHRjbHJcIj5QcmV2aWV3IG5vdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlZnJlc2h0eHQgbXQtMiB0ZXh0Y2xyXCI+VGhlIHNlbGVjdGVkIGNhbWVyYSBpc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90IGF2YWlsYWJsZSBhdCB0aGUgbW9tZW50Ljwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiaXRlbS5jbG9zZVRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibXgtMSBvcGVuY2xvc2VzbmFwSU1HXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwie3tlbnZpcm9ubWVudC5UcmF4T3BlbmNsb3NlY2hlY2tsaXN0Q0ROfX17e2l0ZW0uc3RvcmVJZH19L3t7aXRlbS5kYXRlU3RyaW5nfGRhdGU6J2RkLU1NLXl5eXknfX0vb3BlcmF0aW9uX3NuYXBzL2Nsb3NlLmpwZWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJDaGVja2xpc3QgVmlkZW8gUGxheWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtc3RhY2sgbXgtMSBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbmFwdGV4dFwiPkNsb3NpbmcgU25hcDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbmFwdGltZVwiPnt7aXRlbS5jbG9zZVRpbWV9fSAtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5kYXRlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IHNuYXBiYWRnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtPy5vbmNsb3NlVGltZUZsYWdcIj5PbiBUaW1lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1kYW5nZXIgc25hcGJhZGdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0/LmVhcmx5Y2xvc2VUaW1lRmxhZ1wiPkVhcmx5IENsb3NlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC13YXJuaW5nIHNuYXBiYWRnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtPy5sYXRlY2xvc2VUaW1lRmxhZ1wiPkxhdGUgQ2xvc2U8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImJveGltYWdlQ2hlY2tsaXN0LmluY2x1ZGVzKHNlbGVjdClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIiAqbmdJZj1cImNsaWVudERhdGEubG9nbyYmY2xpZW50RGF0YS5sb2dvIT09JydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIm10LTUgbWItMyB0ZXh0LWNlbnRlciBpY29uc2l6ZVwiIHNyYz1cInt7Y2xpZW50RGF0YS5sb2dvfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCIgKm5nRm9yPVwibGV0IHN0b3JlIG9mIHF1ZXVlQWxlcnRWaWV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtMTAgbXQtNVwiICpuZ0lmPVwic2hvd211bHRpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIj5TdG9yZSBOYW1lOjwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+e3tzdG9yZT8uc3RvcmVOYW1lfX0gfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3N0b3JlPy5jaXR5fX0se3tzdG9yZT8uc3RhdGV9fSx7e3N0b3JlPy5jb3VudHJ5fX0gPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIj5DaGVja2xpc3QgTmFtZTo8L2gzPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj57e2NoZWNrbGlzdE5hbWV9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdD09PSdib3hhbGVydCd8fHNlbGVjdD09PSdzdXNwaWNpb3VzZm9vdGZhbGwnfHxzZWxlY3Q9PT0nZHJpbmtpbmcnfHxzZWxlY3Q9PT0nYmFnZGV0ZWN0aW9uJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkRlc2NyaXB0aW9uOjwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3Q9PT0nYm94YWxlcnQnfHxzZWxlY3Q9PT0nc3VzcGljaW91c2Zvb3RmYWxsJ3x8c2VsZWN0PT09J2RyaW5raW5nJ3x8c2VsZWN0PT09J2JhZ2RldGVjdGlvbidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInVuaS1zdWJ0aXRsZVwiPnt7Y2hlY2tMaXN0RGVzY3JpcHRpb259fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbS0wIHctMTAwIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00IG10LTJcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzdG9yZS5pbWFnZXNEYXRhXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgYm9yZGVyY29sb3IgYmctc2Vjb25kYXJ5IG10LThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3RhcnQgbXMtNSBtdC0yIG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnpvbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IHJvdW5kZWQtbGcgcC0yXCI+e3tpdGVtLnpvbmV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zIGZ3LXNlbWlib2xkXCI+e3sgaXRlbS5kYXRlX3RpbWVzdGFtcCB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInctMTAwIGgtMjUwcHggcm91bmRlZC1ib3R0b21cIiAoY2xpY2spPVwib3Blbk1vZGVsKGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cInt7ZW52aXJvbm1lbnQuVHJheEFJY2hlY2tsaXN0Q0ROfX17e2l0ZW0ucGF0aH19XCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLXBhZ2luYXRpb24gKm5nSWY9XCIhdmlld2xvYWRpbmcgJiYgIXZpZXdub0RhdGFcIiBbaXRlbXNQZXJQYWdlXT1cImxpbWl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY3VycmVudFBhZ2VdPVwib2Zmc2V0XCIgW3RvdGFsSXRlbXNdPVwidG90YWxDb3VudFwiIFtwYWdpbmF0aW9uU2l6ZXNdPSdwYWdpbmF0aW9uU2l6ZXMnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhZ2VTaXplXT1cImxpbWl0XCIgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdldmlldygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFnZVNpemVDaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCI+PC9saWItcGFnaW5hdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXNob3dzaWRlbmF2XCIgKGNsaWNrKT1cInNpZGVuYXYoKVwiIGNsYXNzPVwiYmFja0J1dHRvbmxlZnQgdGV4dC1jZW50ZXIgcHQtMSBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJtdC0yIG1zLTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkuNzI3MTQgMTIuNjM2NUwxMy4zNjM1IDkuMDAwMTNMOS43MjcxNCA1LjM2Mzc3TTQuNjM2MjMgMTIuNjM2NUw4LjI3MjU5IDkuMDAwMTNMNC42MzYyMyA1LjM2Mzc3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMxMDE4MjhcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJyb3cgY2FyZCBteC0wIHAtMyBcIiAqbmdJZj1cImNoZWNrQUljaGVja2xpc3QoKSYmIXZpZXdub0RhdGEmJnVzZXJEZXRhaWxzPy5yb2xlIT09J3VzZXInXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyICB0ZXh0LWVuZFwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIGJvcmRlci1wcmltYXJ5MVwiIFtkaXNhYmxlZF09XCIhYXBwcm92YWxTdGF0dXNcIiAoY2xpY2spPVwiYXBwb3ZlQ2hlY2tsaXN0KClcIj5BcHByb3ZlXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxuZy10ZW1wbGF0ZSAjem9vbVBvcHVwIGxldC1tb2RlbD5cclxuICAgIDxkaXYgY2xhc3M9XCJwLThcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIHB0LTAgcHMtMSBwZS0wXCI+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdGFydCBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInZpZXdJbWFnZS56b25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgcm91bmRlZC1sZyBwLTJcIj57e3ZpZXdJbWFnZS56b25lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInZpZXdJbWFnZS5lbXB0eUJveENvdW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkVtcHR5IHNoZWx2ZXMgOiB7e3ZpZXdJbWFnZS5lbXB0eUJveENvdW50fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ2aWV3SW1hZ2UuZW50cnlfdGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5FbnRyeSBUaW1lIDoge3t2aWV3SW1hZ2UuZW50cnlfdGltZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ2aWV3SW1hZ2UuZXhpdF90aW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkV4aXQgVGltZSA6IHt7dmlld0ltYWdlLmV4aXRfdGltZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ2aWV3SW1hZ2UudGVtcF9pZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5UZW1wIElkIDoge3t2aWV3SW1hZ2UudGVtcF9pZH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ2aWV3SW1hZ2UudGltZV9zcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5UaW1lIFNwZW5kIDoge3t2aWV3SW1hZ2UudGltZV9zcGVuZH19IE1pbnM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yXCIgKm5nSWY9XCJ2aWV3SW1hZ2UudGhyZXNob2xkJiZ2aWV3SW1hZ2UuRHdlbGx0aW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPklmIHRoZSBxdWV1ZSBleGNlZWRzIHt7dmlld0ltYWdlLnRocmVzaG9sZH19IHBlb3BsZSBhbmQgd2FpdCB0aW1lIHN1cnBhc3Nlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3t2aWV3SW1hZ2UuRHdlbGx0aW1lfX0gbWludXRlcywgYW4gYWxlcnQgd2lsbCBiZSB0cmlnZ2VyZWQ8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTMgZnctc2VtaWJvbGRcIj57eyB2aWV3SW1hZ2UuZGF0ZV90aW1lc3RhbXAgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgZGF0YS1icy1kaXNtaXNzPVwibW9kYWxcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJzdHJlYW0gZnctc2VtaWJvbGQgdGV4dC1ub3dyYXAgbWUtNVwiICpuZ0lmPVwiY2FtZXJhLmhlaWdodCAmJiBjYW1lcmEud2lkdGhcIj4gUmVzb2x1dGlvbjoge3tjYW1lcmEuaGVpZ2h0fX0gWCAge3tjYW1lcmEud2lkdGh9fTwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5IG1lLTBcIiAoY2xpY2spPVwibW9kZWwuZGlzbWlzcygpXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUgNUw1IDE1TTUgNUwxNSAxNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ2aWV3SW1hZ2UucGF0aFwiIGNsYXNzPVwibXQtMiBvdmVyZmxvdy1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJyb3VuZGVkLTQgbXQtNSBpbWctcG9wdXAtc3JjIHctMTAwXCIgc3JjPVwie3tlbnZpcm9ubWVudC5UcmF4QUljaGVja2xpc3RDRE59fXt7dmlld0ltYWdlLnBhdGh9fVwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+Il19
|
|
3828
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2dhbGxlcnkvZ2FsbGVyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2dhbGxlcnkvZ2FsbGVyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBYyxZQUFZLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwSSxPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBQ3JDLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBS25DLE9BQU8sRUFBRSxPQUFPLEVBQThDLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUl0RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUVwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUlwRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQzs7Ozs7Ozs7Ozs7OztBQWhCNUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQXdCbEIsTUFBTSxPQUFPLGdCQUFnQjtJQWtHUDtJQUF3QjtJQUFnQztJQUFrQztJQUErQjtJQUNuSTtJQUErQjtJQUF3QjtJQUFvQztJQUE0QjtJQUFtQztJQWxHcEssS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNiLFdBQVcsR0FBRyxDQUFDLENBQUE7SUFDZixpQkFBaUIs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QVUsRUFBRSxRQUFRLEVBQUUsQ0FBQztTQUNqQztRQUVELEtBQUssTUFBTSxJQUFJLElBQUksV0FBVyxFQUFFO1lBQzlCLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDbkQsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO29CQUNsQyxJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssaUJBQWlCLEVBQUU7d0JBQ3pDLFVBQVUsR0FBRyxJQUFJLENBQUM7d0JBQ2xCLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxPQUFPLEVBQUU7NEJBQzNCLFFBQVEsR0FBRyxLQUFLLENBQUM7NEJBQ2pCLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUM7eUJBQ2pDO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRjtRQUVELGlEQUFpRDtRQUNqRCxpREFBaUQ7UUFDakQsaURBQWlEO1FBQ2pELG9EQUFvRDtRQUNwRCw4REFBOEQ7UUFDOUQsNkJBQTZCO1FBQzdCLGlGQUFpRjtRQUNqRiwyQ0FBMkM7UUFDM0MsVUFBVTtRQUNWLFFBQVE7UUFDUixZQUFZO1FBQ1osSUFBSTtRQUNKLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQywyQkFBMkI7SUFDOUQsQ0FBQzt3R0FyMEhVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLHlOQzVCN0IsOGhrUUFpa0ZjOzs0RkRyaUZELGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxhQUFhOytWQW1qR3ZCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkE0aEJsQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IGRheWpzLCB7IERheWpzIH0gZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yyc7XHJcbmRheWpzLmV4dGVuZCh1dGMpO1xyXG5pbXBvcnQgeyBUaW1lUGVyaW9kIH0gZnJvbSAnbmd4LWRhdGVyYW5nZXBpY2tlci1tYXRlcmlhbC9kYXRlcmFuZ2VwaWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLCBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgVHJheFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmF4LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBFeHBvcnRHYWxsZXJ5Q29tcG9uZW50IH0gZnJvbSAnLi4vZXhwb3J0LWdhbGxlcnkvZXhwb3J0LWdhbGxlcnkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IEFkZFRhc2tDb21wb25lbnQgfSBmcm9tICcuLi9hZGQtdGFzay9hZGQtdGFzay5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYXNrTG9nc0NvbXBvbmVudCB9IGZyb20gJy4uL3Rhc2stbG9ncy90YXNrLWxvZ3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXBwcm92YWxQb3B1cENvbXBvbmVudCB9IGZyb20gJy4uL2FwcHJvdmFsLXBvcHVwL2FwcHJvdmFsLXBvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGludGVydmFsLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQnVsa2NyZWF0aW9ubW9kZWxDb21wb25lbnQgfSBmcm9tICcuLi9hZGQtbXVsdGl0YXNrL2J1bGtjcmVhdGlvbm1vZGVsL2J1bGtjcmVhdGlvbm1vZGVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZ2FsbGVyeScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dhbGxlcnkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9nYWxsZXJ5LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgR2FsbGVyeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuICBkYXlqcyA9IGRheWpzXHJcbiAgbm90aWZ5Q291bnQgPSAwXHJcbiAgc2VsZWN0ZWREYXRlUmFuZ2U6IGFueSA9IHt9O1xyXG4gIGlzQ3VzdG9tRGF0ZSA9IChtOiBkYXlqcy5EYXlqcykgPT4ge1xyXG4gICAgY29uc3QgaXNWYWxpZERhdGUgPSBtID4gdGhpcy5kYXlqcygpO1xyXG4gICAgcmV0dXJuIGlzVmFsaWREYXRlID8gJ2ludmFsaWQtZGF0ZScgOiBmYWxzZTtcclxuICB9XHJcbiAgZ2FsbGVyeUZvcm06IEZvcm1Hcm91cFxyXG4gIHR5cGU6IGFueSA9IFt7IHZhbHVlOiAnY2hlY2tsaXN0JywgbGFiZWw6ICdDaGVja2xpc3QnIH0sXHJcbiAgICAvLyB7IHZhbHVlOiAndGFzaycsIGxhYmVsOiAnVGFzaycgfVxyXG4gIF1cclxuICBmaWx0ZXJ0eXBlOiBhbnkgPSBbeyB2YWx1ZTogJ0NsdXN0ZXJzJywgbGFiZWw6ICdDbHVzdGVycycgfSxcclxuICB7IHZhbHVlOiAnVGVhbXMnLCBsYWJlbDogJ1RlYW1zJyB9XHJcbiAgXVxyXG4gIGNoZWNrbGlzdHM6IGFueSA9IFtdXHJcbiAgYW5zd2VyVHlwZSA9IFtcclxuICAgIHsgbGFiZWw6ICdBbGwgQW5zd2VyIFR5cGUnLCB2YWx1ZTogJ2FsbCcgfSxcclxuICAgIHsgbGFiZWw6ICdEZXNjcmlwdGl2ZSBBbnN3ZXInLCB2YWx1ZTogJ2Rlc2NyaXB0aXZlJyB9LFxyXG4gICAgeyBsYWJlbDogJ0EvQiBRdWVzdGlvbicsIHZhbHVlOiAneWVzL25vJyB9LFxyXG4gICAgeyBsYWJlbDogJ011bHRpcGxlIENob2ljZSBRdWVzdGlvbiAtIFNpbmdsZSBBbnN3ZXInLCB2YWx1ZTogJ211bHRpcGxlY2hvaWNlc2luZ2xlJyB9LFxyXG4gICAgeyBsYWJlbDogJ011bHRpcGxlIENob2ljZSBRdWVzdGlvbiAtIE11bHRpcGxlIEFuc3dlcicsIHZhbHVlOiAnbXVsdGlwbGVjaG9pY2VtdWx0aXBsZScgfSxcclxuICAgIHsgbGFiZWw6ICdDYXB0dXJlIEltYWdlIGFzIGFuc3dlcicsIHZhbHVlOiAnaW1hZ2UnIH0sXHJcbiAgICB7IGxhYmVsOiAnQ2FwdHVyZSBJbWFnZSB3aXRoIERlc2NyaXB0aW9uJywgdmFsdWU6ICdkZXNjcmlwdGl2ZUltYWdlJyB9LFxyXG4gICAgeyBsYWJlbDogJ0NhcHR1cmUgdmlkZW8gYXMgYW5zd2VyJywgdmFsdWU6ICd2aWRlbycgfSxcclxuICAgIHsgbGFiZWw6ICdDYXB0dXJlIE11bHRpcGxlIEltYWdlJywgdmFsdWU6ICdtdWx0aXBsZUltYWdlJyB9LFxyXG4gICAgeyBsYWJlbDogJ0RhdGUgQXMgQW5zd2VyJywgdmFsdWU6ICdkYXRlJyB9LFxyXG4gICAgeyBsYWJlbDogJ1RpbWUgQXMgQW5zd2VyJywgdmFsdWU6ICd0aW1lJyB9LFxyXG4gICAgeyBsYWJlbDogJ0xpbmVhciBTY2FsZScsIHZhbHVlOiAnbGluZWFyc2NhbGUnIH1cclxuICBdXHJcbiAgaGVhZGVyRmlsdGVyczogYW55ID0ge307XHJcbiAgc3RvcmVMaXN0OiBhbnlbXSA9IFtdXHJcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgY2hlY2tsaXN0RGF0YTogYW55ID0ge31cclxuICBzdG9yZXM6IGFueSA9IFtdO1xyXG4gIGdyb3VwczogYW55ID0gW107XHJcbiAgdGVhbXM6IGFueSA9IFtdO1xyXG4gIGl0ZW1zOiBhbnk7XHJcbiAgcGFnaW5hdGVkSXRlbXM6IGFueTtcclxuICBpdGVtc1BlclBhZ2UgPSAxMDtcclxuICBjdXJyZW50UGFnZSA9IDE7XHJcbiAgdG90YWxJdGVtcyA9IDA7XHJcbiAgdmlld0NoZWNrbGlzdHNEYXRhOiBhbnk7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgbm9EYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdmlld2xvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHZpZXdub0RhdGE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBvZmZzZXQ6IGFueSA9IDE7XHJcbiAgbGltaXQ6IGFueSA9IDE7XHJcbiAgcGFnaW5hdGlvblNpemVzID0gWzFdXHJcbiAgdG90YWxDb3VudDogYW55O1xyXG4gIHZpZXdDaGVja2xpc3Rzb3B0aW9uczogYW55ID0ge307XHJcbiAgbW9iaWxldXNhZ2VEYXRhOiBhbnk7XHJcbiAgbW9iaWxldXNhZ2VEYXRhTGlzdDogYW55ID0gW11cclxuICBzZWxlY3RBbGw6IGFueVxyXG4gIHN0b3JlT3BlbmNsb3NlVmlldzogYW55O1xyXG4gIHF1ZXJ5UGFyYW1zOiBhbnk7XHJcbiAgY3VzdG9tZXJ1bmF0dGVuZGVkRGF0YTogYW55O1xyXG4gIHNlY3Rpb25OYW1lOiBhbnkgPSAnYWxsJztcclxuICBxdWVzdGlvbk5hbWU6IGFueSA9ICdhbGwnO1xyXG4gIGNsaWVudERhdGE6IGFueTtcclxuICBjaGVja2xpc3ROYW1lOiBhbnkgPSAnJztcclxuICBDbHVzdGVyTGlzdDogYW55ID0gW107XHJcbiAgVGVhbXNMaXN0OiBhbnkgPSBbXTtcclxuICB1c2VyTGlzdDogYW55ID0gW107XHJcbiAgZW52aXJvbm1lbnQ6IGFueTtcclxuICBzaG93ZmxhZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgc2VsZWN0ZWRTZWN0aW9uOiBhbnkgPSBbXVxyXG4gIHRlbXBzZWxlY3RlZFNlY3Rpb246IGFueSA9IFtdXHJcbiAgc2hvd211bHRpOiBib29sZWFuID0gdHJ1ZTtcclxuICBzaG93c2luZ2xlOiBib29sZWFuID0gZmFsc2VcclxuICBzaG93ZmlsdGVyOiBib29sZWFuID0gZmFsc2VcclxuICBwcmV2aWV3VHlwZTogYW55ID0gJ2ltYWdlJztcclxuICBjaGVja0xpc3REZXNjcmlwdGlvbjogYW55ID0gJydcclxuICBhbnN3ZXJGaWx0ZXI6IGFueSA9IFtdXHJcbiAgYXBwcm92YWxTdGF0dXM6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIGFsbGFwcHJvdmFsU3RhdHVzOiBib29sZWFuID0gZmFsc2VcclxuICBjYXRlZ29yeTogc3RyaW5nID0gJ2FsbCdcclxuICB2aWRlb0NoZWNrbGlzdCA9IFsnY3VzdG9tZXJ1bmF0dGVuZGVkJywgJ3N0YWZmbGVmdGludGhlbWlkZGxlJywgJ3JlbW90ZW9wdG9tZXRyaXN0JywgJ2V5ZXRlc3QnLCAnZmFjdG9yeScsICdjbGVhbmluZycsICdzY3J1bScsICdzdXNwaWNpb3VzYWN0aXZpdHknXVxyXG4gIGltYWdlQ2hlY2tsaXN0ID0gWydtb2JpbGV1c2FnZWRldGVjdGlvbicsICd1bmlmb3JtZGV0ZWN0aW9uJywgJ3N0b3JlaHlnaWVuZW1vbml0b3JpbmcnLCAnY3VzdG9tZXJ0cmlhbCcsICdpbnZlbnRvcnljb3VudCcsICdjYXJzYXR0ZW5kZWQnLCAnbnVtYmVycGxhdGVpbmZvJywgJ3ZlaGljbGVfY2hlY2tfaW4nLCAnb3V0c2lkZWJ1c2luZXNzaG91cnNxdWV1ZXRyYWNraW5nJ11cclxuICBib3hpbWFnZUNoZWNrbGlzdCA9IFsncXVldWVhbGVydCcsICdib3hhbGVydCcsICdzdXNwaWNpb3VzZm9vdGZhbGwnLCAnZHJpbmtpbmcnLCAnYmFnZGV0ZWN0aW9uJ11cclxuICBjb21iaW5lZENoZWNrbGlzdCA9IFsuLi50aGlzLnZpZGVvQ2hlY2tsaXN0LCAuLi50aGlzLmltYWdlQ2hlY2tsaXN0LCAuLi50aGlzLmJveGltYWdlQ2hlY2tsaXN0LCAnc3RvcmVvcGVuYW5kY2xvc2UnLF1cclxuICBwZGZFeHBvcnRUeXBlczogYW55ID0gWydjdXN0b20nLCAndGFzaycsICdzdG9yZW9wZW5hbmRjbG9zZScsICdjbGVhbmluZycsICdzY3J1bScsICdvdXRzaWRlYnVzaW5lc3Nob3Vyc3F1ZXVldHJhY2tpbmcnXVxyXG4gIGNzdkV4cG9ydFR5cGVzOiBhbnkgPSBbJ2N1c3RvbScsICd0YXNrJywgJ3N0b3Jlb3BlbmFuZGNsb3NlJywgJ2NsZWFuaW5nJywgJ3NjcnVtJywgJ2ludmVudG9yeWNvdW50JywgJ2NhcnNhdHRlbmRlZCcsICdudW1iZXJwbGF0ZWluZm8nLCAnb3V0c2lkZWJ1c2luZXNzaG91cnNxdWV1ZXRyYWNraW5nJ11cclxuICBxdWV1ZUFsZXJ0VmlldzogYW55O1xyXG4gIHZpZXdJbWFnZTogYW55O1xyXG4gIHpvbmVMaXN0OiBhbnkgPSBbXTtcclxuICBhcHByb3ZlRmlsdGVyOiBhbnkgPSAnYWxsJ1xyXG4gIHVzZXJEZXRhaWxzOiBhbnlcclxuICB0aW1lb3V0SWQ6IGFueTtcclxuICBzZWxlY3RlZFN0b3JlczogYW55ID0gW107XHJcbiAgc2VsZWN0ZWRVc2VyczogYW55ID0gW107XHJcbiAgaW5wdXREYXRhVGFzazogYW55O1xyXG4gIG90aGVyVGFza0RhdGE6IGFueVxyXG4gIHNlbGVjdEFsbFRhc2s6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIHRvdGFscmVjb3JkY291bnQ6IG51bWJlciA9IDBcclxuICBzZWxlY3RlZFJlY29yZENvdW50OiBudW1iZXIgPSAwXHJcbiAgcmVmSW1hZ2U6IGFueVtdID0gW107XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsIHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLCBwcml2YXRlIHRyYXhTZXJ2aWNlOiBUcmF4U2VydmljZSwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlLCBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbiwgcHJpdmF0ZSBwYWdlSW5mbzogUGFnZUluZm9TZXJ2aWNlLCBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyXHJcbiAgKSB7XHJcbiAgICBcclxuICAgIHRoaXMucm91dGU/LnF1ZXJ5UGFyYW1zXHJcbiAgICAgID8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xyXG4gICAgICAgIHRoaXMucXVlcnlQYXJhbXMgPSBwYXJhbXM7XHJcbiAgICAgICAgICBpZih0aGlzLnF1ZXJ5UGFyYW1zLmNoZWNrbGlzdFR5cGUgPT09ICdBSScpe1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdCA9dGhpcy5xdWVyeVBhcmFtcz8uc291cmNlQ2hlY2tMaXN0X2lkXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMucXVlcnlQYXJhbXMgJiYgdGhpcy5xdWVyeVBhcmFtcy5DaGVja2xpc3REYXRlKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlID0ge1xyXG4gICAgICAgICAgICBzdGFydERhdGU6IHRoaXMucXVlcnlQYXJhbXMuQ2hlY2tsaXN0RGF0ZSA/IHRoaXMuZGF5anModGhpcy5xdWVyeVBhcmFtcy5DaGVja2xpc3REYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKSA6IHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgxLCAnZGF5JykuZm9ybWF0KCdERC1NTS1ZWVlZJyksXHJcbiAgICAgICAgICAgIGVuZERhdGU6IHRoaXMucXVlcnlQYXJhbXMuQ2hlY2tsaXN0RGF0ZSA/IHRoaXMuZGF5anModGhpcy5xdWVyeVBhcmFtcy5DaGVja2xpc3REYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKSA6IHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgxLCAnZGF5JykuZm9ybWF0KCdERC1NTS1ZWVlZJylcclxuICAgICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWUucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoZGF0YT8uY2xpZW50KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhlYWRlckZpbHRlcnMgPSBkYXRhO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRBbGxTdG9yZXMoKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbGV0IHVzZXJpbmZvID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInVzZXItaW5mb1wiKSB8fCBcIlwiKVxyXG4gICAgICAgICAgICAgICAgaWYgKHVzZXJpbmZvICYmIHVzZXJpbmZvPy5jbGllbnRJZCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50ID0gdXNlcmluZm8/LmNsaWVudElkXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QWxsU3RvcmVzKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBpZiAodGhpcy5xdWVyeVBhcmFtcy52aWV3UmVkbykge1xyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldChcInZpZXdSZWRvXCIpPy5zZXRWYWx1ZSh0cnVlKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlID0ge1xyXG4gICAgICAgICAgLy8gICBzdGFydERhdGU6IHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgyLCAnZGF5JykuZm9ybWF0KCdERC1NTS1ZWVlZJyksXHJcbiAgICAgICAgICAvLyAgIGVuZERhdGU6IHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgyLCAnZGF5JykuZm9ybWF0KCdERC1NTS1ZWVlZJylcclxuICAgICAgICAgIC8vIH1cclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UgPSB7XHJcbiAgICAgICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcyhcIjIwMjUtMDgtMjVcIikuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgICAgICAgZW5kRGF0ZTogdGhpcy5kYXlqcyhcIjIwMjUtMDktMTBcIikuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgICAgIH07XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIHRoaXMuZ3MuZW52aXJvbm1lbnQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZW52KSA9PiB7XHJcbiAgICAgIGlmIChlbnYpIHtcclxuICAgICAgICB0aGlzLmVudmlyb25tZW50ID0gZW52XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50ID09PSBcIjQ2NFwiKSB7XHJcbiAgICAgIHRoaXMucmVxdWVzdFBlcm1pc3Npb24oKVxyXG4gICAgICB0aGlzLmNoZWNrTm90aWZpY2F0aW9ucygpXHJcbiAgICB9XHJcbiAgfVxyXG4gIGNoZWNrdG9kYXlEYXRlKGNoZWNrbGlzdERhdGU6IGFueSkge1xyXG4gICAgY29uc3QgZ2l2ZW5EYXRlID0gY2hlY2tsaXN0RGF0ZTtcclxuICAgIGNvbnN0IGlzU2FtZURhdGUgPSBkYXlqcygpLmlzU2FtZShkYXlqcyhnaXZlbkRhdGUpLCAnZGF5Jyk7XHJcblxyXG4gICAgcmV0dXJuIGlzU2FtZURhdGVcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50aW1lb3V0SWQpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dElkKTtcclxuICAgICAgdGhpcy50aW1lb3V0SWQgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVxdWVzdFBlcm1pc3Npb24oKSB7XHJcbiAgICBpZiAoJ05vdGlmaWNhdGlvbicgaW4gd2luZG93KSB7XHJcbiAgICAgIE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4ocGVybWlzc2lvbiA9PiB7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2cocGVybWlzc2lvbilcclxuICAgICAgICAvLyBpZiAocGVybWlzc2lvbiA9PT0gJ2dyYW50ZWQnKSB7XHJcbiAgICAgICAgLy8gICBzZXRUaW1lb3V0KCgpID0+IHRoaXMubm90aWZ5KCksIDEwMDApOyAvLyBzaG9ydCBkZWxheSBoZWxwcyBpbiBzb21lIGJyb3dzZXJzXHJcbiAgICAgICAgLy8gfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Jyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBub3RpZmljYXRpb25zLicpO1xyXG4gICAgfVxyXG4gIH1cclxuICBub3RpZnkoZGF0YTogYW55KSB7XHJcbiAgICBmb3IgKGxldCBlbGVtZW50IG9mIGRhdGEpIHtcclxuICAgICAgaWYgKE5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uID09PSAnZ3JhbnRlZCcpIHtcclxuICAgICAgICB0aGlzLnBhZ2VJbmZvLnVwZGF0ZVRpdGxlKCfimqDvuI8gVmVoaWNsZSBEZXRlY3Rpb24nKTtcclxuXHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uID0gbmV3IE5vdGlmaWNhdGlvbihg8J+alyBWZWhpY2xlIERldGVjdGlvbiBvbiBzbG90ICR7ZWxlbWVudD8uc2xvdE5vfWAsIHtcclxuICAgICAgICAgIGJvZHk6IGAgRGV0ZWN0aW9uIG9jY3VycmVkIGF0ICR7ZWxlbWVudC5jYXB0dXJlVGltZX1gLFxyXG4gICAgICAgICAgaWNvbjogJy4vYXNzZXRzL3RhbmdvL2xheW91dC90YW5nby1mYXYucG5nJyAvLyBPcHRpb25hbFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKG5vdGlmaWNhdGlvbilcclxuICAgICAgICBub3RpZmljYXRpb24ub25zaG93ID0gKCkgPT4gY29uc29sZS5sb2coJ05vdGlmaWNhdGlvbiBzaG93bicpO1xyXG4gICAgICAgIG5vdGlmaWNhdGlvbi5vbmNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ05vdGlmaWNhdGlvbiBjbGlja2VkJyk7XHJcblxyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnLycsIHsgc2tpcExvY2F0aW9uQ2hhbmdlOiB0cnVlIH0pLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9tYW5hZ2UvdHJheC9nYWxsZXJ5J10sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHtcclxuICAgICAgICAgICAgICAgICAgQ2hlY2tsaXN0RGF0ZTogZGF5anMoKS5mb3JtYXQoJ1lZWVktTU0tREQnKSxcclxuICAgICAgICAgICAgICAgICAgY2hlY2tsaXN0VHlwZTogXCJhaVwiLFxyXG4gICAgICAgICAgICAgICAgICBzb3VyY2VDaGVja0xpc3RfaWQ6IFwidmVoaWNsZV9jaGVja19pblwiLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXHJcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIG5vdGlmaWNhdGlvbi5jbG9zZSgpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgbm90aWZpY2F0aW9uLm9uZXJyb3IgPSAoZSkgPT4gY29uc29sZS5lcnJvcignTm90aWZpY2F0aW9uIGVycm9yJywgZSk7XHJcbiAgICAgICAgbm90aWZpY2F0aW9uLm9uY2xvc2UgPSAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBhZ2VJbmZvLnVwZGF0ZVRpdGxlKCdHYWxsZXJ5Jyk7XHJcblxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmVmcmVzaG5vdygpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy8nLCB7IHNraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZSB9KS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RyYXgvZ2FsbGVyeSddLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XHJcbiAgICAgICAgICAgIENoZWNrbGlzdERhdGU6IGRheWpzKCkuZm9ybWF0KCdZWVlZLU1NLUREJyksXHJcbiAgICAgICAgICAgIGNoZWNrbGlzdFR5cGU6IFwiYWlcIixcclxuICAgICAgICAgICAgc291cmNlQ2hlY2tMaXN0X2lkOiBcInZlaGljbGVfY2hlY2tfaW5cIixcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxyXG4gICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xyXG4gICAgdGhpcy5zZXRQYWdlRGF0YSgpO1xyXG4gICAgdGhpcy51c2VyRGV0YWlscyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c2VyLWluZm9cIikgfHwgXCJcIilcclxuICAgIC8vIGlmICh0aGlzLnF1ZXJ5UGFyYW1zLmNvdmVyYWdlID09PSAndXNlcicpIHtcclxuICAgIC8vICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoXCJmaWx0ZXJ0eXBlXCIpPy5zZXRWYWx1ZSgnVGVhbXMnKVxyXG4gICAgLy8gfVxyXG4gICAgLy8gaWYgKHRoaXMucXVlcnlQYXJhbXMuY292ZXJhZ2UgPT09ICdzdG9yZXMnKSB7XHJcbiAgICB0aGlzLmdhbGxlcnlGb3JtLmdldChcImZpbHRlcnR5cGVcIik/LnNldFZhbHVlKCdDbHVzdGVycycpXHJcbiAgICB0aGlzLmdhbGxlcnlGb3JtLmdldChcInR5cGVcIik/LnNldFZhbHVlKCdjaGVja2xpc3QnKVxyXG4gICAgLy8gfVxyXG4gICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhPy5jbGllbnQpIHtcclxuICAgICAgICAgIHRoaXMuaGVhZGVyRmlsdGVycyA9IGRhdGE7XHJcbiAgICAgICAgICBpZiAoIXRoaXMucXVlcnlQYXJhbXMuQ2hlY2tsaXN0RGF0ZSAmJiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50ICYmICh0aGlzLmhlYWRlckZpbHRlcnM/LmNsaWVudCA9PT0gXCI0NTlcIiB8fCB0aGlzLmhlYWRlckZpbHRlcnM/LmNsaWVudCA9PT0gXCI0NjRcIikpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSA9IHtcclxuICAgICAgICAgICAgICBzdGFydERhdGU6IHRoaXMuZGF5anMoKS5mb3JtYXQoJ0RELU1NLVlZWVknKSxcclxuICAgICAgICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKCkuZm9ybWF0KCdERC1NTS1ZWVlZJylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnZnJvbURhdGUnKT8uc2V0VmFsdWUoZGF5anModGhpcy5zZWxlY3RlZERhdGVSYW5nZS5zdGFydERhdGUsICdERC1NTS1ZWVlZJykuZm9ybWF0KCdZWVlZLU1NLUREJykpXHJcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd0b0RhdGUnKT8uc2V0VmFsdWUoZGF5anModGhpcy5zZWxlY3RlZERhdGVSYW5nZS5lbmREYXRlLCAnREQtTU0tWVlZWScpLmZvcm1hdCgnWVlZWS1NTS1ERCcpKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5jbGllbnREZXRhaWxzKCk7XHJcbiAgICAgICAgICAvLyB0aGlzLmdldEFsbEdyb3VwcygpO1xyXG4gICAgICAgICAgdGhpcy5nZXRBbGxTdG9yZXMoKTtcclxuICAgICAgICAgIC8vIHRoaXMuZ2V0QWxsVXNlcnMoKTtcclxuICAgICAgICAgIC8vIHRoaXMuZ2V0QWxsVGVhbXMoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IHVzZXJpbmZvID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInVzZXItaW5mb1wiKSB8fCBcIlwiKVxyXG4gICAgICAgICAgaWYgKHVzZXJpbmZvICYmIHVzZXJpbmZvPy5jbGllbnRJZCkge1xyXG4gICAgICAgICAgICB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50ID0gdXNlcmluZm8/LmNsaWVudElkXHJcblxyXG4gICAgICAgICAgICBpZiAoIXRoaXMucXVlcnlQYXJhbXMuQ2hlY2tsaXN0RGF0ZSAmJiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50ICYmICh0aGlzLmhlYWRlckZpbHRlcnM/LmNsaWVudCA9PT0gXCI0NTlcIiB8fCB0aGlzLmhlYWRlckZpbHRlcnM/LmNsaWVudCA9PT0gXCI0NjRcIikpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlID0ge1xyXG4gICAgICAgICAgICAgICAgc3RhcnREYXRlOiB0aGlzLmRheWpzKCkuZm9ybWF0KCdERC1NTS1ZWVlZJyksXHJcbiAgICAgICAgICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKCkuZm9ybWF0KCdERC1NTS1ZWVlZJylcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2Zyb21EYXRlJyk/LnNldFZhbHVlKGRheWpzKHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2Uuc3RhcnREYXRlLCAnREQtTU0tWVlZWScpLmZvcm1hdCgnWVlZWS1NTS1ERCcpKVxyXG4gICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd0b0RhdGUnKT8uc2V0VmFsdWUoZGF5anModGhpcy5zZWxlY3RlZERhdGVSYW5nZS5lbmREYXRlLCAnREQtTU0tWVlZWScpLmZvcm1hdCgnWVlZWS1NTS1ERCcpKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY2xpZW50RGV0YWlscygpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLmdldEFsbEdyb3VwcygpO1xyXG4gICAgICAgICAgICB0aGlzLmdldEFsbFN0b3JlcygpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLmdldEFsbFVzZXJzKCk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuZ2V0QWxsVGVhbXMoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgY2hlY2tOb3RpZmljYXRpb25zKCkge1xyXG4gICAgdGhpcy50cmF4U2VydmljZS5jaGVja05vdGlmaWNhdGlvbkNvdW50KHRoaXMuaGVhZGVyRmlsdGVycy5jbGllbnQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRJZClcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCAmJiByZXMuZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLm5vdGlmeUNvdW50ID0gdGhpcy5ub3RpZnlDb3VudCArIHJlcy5kYXRhLmxlbmd0aDtcclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgdGhpcy5ub3RpZnkocmVzLmRhdGEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gU2NoZWR1bGUgdGhlIG5leHQgY2FsbFxyXG4gICAgICAgIHRoaXMudGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLmNoZWNrTm90aWZpY2F0aW9ucygpLCAxMDAwMCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6JywgZXJyKTtcclxuICAgICAgICB0aGlzLnJlcXVlc3RQZXJtaXNzaW9uKCk7XHJcblxyXG4gICAgICAgIC8vIFJldHJ5IGV2ZW4gb24gZXJyb3JcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2hlY2tOb3RpZmljYXRpb25zKCksIDEwMDAwKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNldFBhZ2VEYXRhKCkge1xyXG4gICAgdGhpcy5wYWdlSW5mby51cGRhdGVUaXRsZSgnR2FsbGVyeScpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXREZXNjcmlwdGlvbihcIlwiKTtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0QnJlYWRjcnVtYnMoW1xyXG4gICAgICB7IHRpdGxlOiBcIlRhbmdvIFRyYXhcIiwgcGF0aDogXCIvbWFuYWdlL3RyYXgvbWFuYWdlY2hlY2tsaXN0XCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IGZhbHNlIH0sXHJcbiAgICAgIHsgdGl0bGU6IFwiVGFuZ28gVHJheFwiLCBwYXRoOiBcIi9tYW5hZ2UvdHJheC9tYW5hZ2VjaGVja2xpc3RcIiwgaXNBY3RpdmU6IGZhbHNlLCBpc1NlcGFyYXRvcjogdHJ1ZSB9LFxyXG4gICAgXSk7XHJcblxyXG4gIH1cclxuICBnZXRBbGxHcm91cHMoKSB7XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldGNsdXN0ZXJzKHsgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRmlsdGVycy5jbGllbnQsIGdyb3VwOiBbXSwgY2l0eTogW10gfSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuQ2x1c3Rlckxpc3QgPSByZXMuZGF0YS5ncm91cERhdGFcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5DbHVzdGVyTGlzdCA9IFtdXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBnZXRBbGxUZWFtcygpIHtcclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0QWxsVGVhbXModGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuVGVhbXNMaXN0ID0gcmVzLmRhdGFcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5UZWFtc0xpc3QgPSBbXVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgY2xpZW50RGV0YWlscygpIHtcclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0Y2xpZW50KHsgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRmlsdGVycy5jbGllbnQgfSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuY2xpZW50RGF0YSA9IHJlcy5kYXRhLnJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHJlZG9DaGFuZ2VkKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldChcInZpZXdSZWRvXCIpPy5zZXRWYWx1ZSh0cnVlKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50cmF4U2VydmljZS5nZXRTdG9yZXNsaXN0KHsgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRmlsdGVycy5jbGllbnQsIGNsdXN0ZXJzOiB0aGlzLmdyb3VwcywgY2l0eTogW10gfSkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gcmVzLmRhdGEuc3RvcmVzRGF0YTtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZXMgPSByZXMuZGF0YS5zdG9yZXNEYXRhXHJcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZUxpc3QnKT8uc2V0VmFsdWUodGhpcy5zdG9yZUxpc3QpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldChcInZpZXdSZWRvXCIpPy5zZXRWYWx1ZShmYWxzZSlcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBmbGFnQ2hhbmdlZChldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoXCJ2aWV3RmxhZ1wiKT8uc2V0VmFsdWUodHJ1ZSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KFwidmlld0ZsYWdcIik/LnNldFZhbHVlKGZhbHNlKVxyXG4gICAgfVxyXG4gIH1cclxuICBvbmNoZWNrbGlzdHJlc2V0KCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFN0b3JlcyA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gW107XHJcbiAgICB0aGlzLnRvdGFscmVjb3JkY291bnQgPSAwO1xyXG4gICAgdGhpcy5zZWxlY3RlZFJlY29yZENvdW50ID0gMFxyXG4gICAgdGhpcy5zZWxlY3RBbGxUYXNrID0gZmFsc2VcclxuXHJcbiAgICB0aGlzLmdhbGxlcnlGb3JtLmdldChcImZpbHRlclwiKT8uc2V0VmFsdWUoJycpXHJcbiAgICB0aGlzLmFuc3dlckZpbHRlciA9IFtdXHJcbiAgICB0aGlzLnNob3dtdWx0aSA9IHRydWVcclxuICAgIHRoaXMuc2hvd3NpbmdsZSA9IGZhbHNlXHJcbiAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0Jykge1xyXG4gICAgICB0aGlzLmdldENoZWNrbGlzdFFBKGZhbHNlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ2V0VGFza1FBKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSlcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICByZXNldFZhbGlkYXRpb24oKSB7XHJcbiAgICB0aGlzLmlzQ3VzdG9tRGF0ZSA9IChtOiBkYXlqcy5EYXlqcykgPT4ge1xyXG4gICAgICAvLyBDaGVjayBpZiB0aGUgZ2l2ZW4gZGF0ZSBpcyBiZWZvcmUgeWVzdGVyZGF5XHJcbiAgICAgIHJldHVybiBtLmlzQWZ0ZXIodGhpcy5kYXlqcygpLCAnZGF5JykgPyAnaW52YWxpZC1kYXRlJyA6IGZhbHNlO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG9uU3RhcnREYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkuaXNWYWxpZCgpKSB7XHJcbiAgICAgIGxldCBjbGllbnRpbmZvID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNsaWVudC1kZXRhaWxzXCIpIHx8IFwiXCIpXHJcbiAgICAgIGxldCB1c2VyaW5mbyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c2VyLWluZm9cIikgfHwgXCJcIilcclxuICAgICAgaWYgKGNsaWVudGluZm8gfHwgdXNlcmluZm8pIHtcclxuICAgICAgICBpZiAoY2xpZW50aW5mbz8udHJheERhdGVSYW5nZSA9PT0gNyB8fCB1c2VyaW5mbz8udHJheERhdGVSYW5nZSA9PT0gNykge1xyXG4gICAgICAgICAgdGhpcy5pc0N1c3RvbURhdGUgPSAobTogZGF5anMuRGF5anMpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgaXNWYWxpZERhdGUgPVxyXG4gICAgICAgICAgICAgIG0gPiB0aGlzLmRheWpzKCkgfHwgbSA+IHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlLmFkZCgyLCBcImRheXNcIikpO1xyXG4gICAgICAgICAgICByZXR1cm4gaXNWYWxpZERhdGUgPyBcImludmFsaWQtZGF0ZVwiIDogZmFsc2U7XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmlzQ3VzdG9tRGF0ZSA9IChtOiBkYXlqcy5EYXlqcykgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpc1ZhbGlkRGF0ZSA9XHJcbiAgICAgICAgICAgICAgbSA+IHRoaXMuZGF5anMoKSB8fCBtID4gdGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUuYWRkKDMwLCBcImRheXNcIikpO1xyXG4gICAgICAgICAgICByZXR1cm4gaXNWYWxpZERhdGUgPyBcImludmFsaWQtZGF0ZVwiIDogZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgLy8gdGhpcy5nZXRBbGxDaGVja0xpc3RzKGZhbHNlKVxyXG4gIH1cclxuICBzZWxlY3RBbGxTdG9yZShldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RBbGwgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgICAgdGhpcy5tb2JpbGV1c2FnZURhdGFMaXN0LmZvckVhY2goKG9iajogYW55KSA9PiAob2JqLmNoZWNrZWQgPSB0aGlzLnNlbGVjdEFsbCkpO1xyXG4gICAgICBsZXQgc3RvcmUgPSB0aGlzLm1vYmlsZXVzYWdlRGF0YUxpc3QuZmlsdGVyKChlbDogYW55KSA9PiBlbC5jaGVja2VkKVxyXG4gICAgICBjb25zdCBjaGFuZ2UgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHN0b3JlKSlcclxuICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZShjaGFuZ2UpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnem9uZUxpc3QnKT8uc2V0VmFsdWUoW10pXHJcbiAgICAgIHRoaXMuc2VsZWN0QWxsID0gZmFsc2VcclxuICAgICAgdGhpcy5tb2JpbGV1c2FnZURhdGFMaXN0LmZvckVhY2goKG9iajogYW55KSA9PiAob2JqLmNoZWNrZWQgPSB0aGlzLnNlbGVjdEFsbCkpO1xyXG4gICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc3RvcmVMaXN0Jyk/LnNldFZhbHVlKFtdKVxyXG4gICAgfVxyXG4gIH1cclxuICB1cGRhdGVDaGVjayhldmVudDogYW55LCBzdG9yZWRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5tb2JpbGV1c2FnZURhdGFMaXN0LmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChlbGUuc3RvcmVJZCA9PT0gc3RvcmVkYXRhLnN0b3JlSWQpIHtcclxuICAgICAgICBlbGUuY2hlY2tlZCA9IGV2ZW50LnRhcmdldC5jaGVja2VkO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGxldCBzdG9yZSA9IHRoaXMubW9iaWxldXNhZ2VEYXRhTGlzdC5maWx0ZXIoKGRhdGE6IGFueSkgPT4gZGF0YS5jaGVja2VkKTtcclxuICAgIGNvbnN0IGNoYW5nZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc3RvcmUpKVxyXG5cclxuICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZUxpc3QnKT8uc2V0VmFsdWUoY2hhbmdlKVxyXG4gICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3pvbmVMaXN0Jyk/LnNldFZhbHVlKFtdKVxyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuICAgIHRoaXMuc2VsZWN0QWxsID0gdGhpcy5tb2JpbGV1c2FnZURhdGFMaXN0LmV2ZXJ5KChvYmo6IGFueSkgPT4gb2JqLmNoZWNrZWQpO1xyXG5cclxuICB9XHJcbiAgY3JlYXRlRm9ybSgpIHtcclxuICAgIHRoaXMuZ2FsbGVyeUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgZnJvbURhdGU6IFtkYXlqcyh0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLnN0YXJ0RGF0ZSwgXCJERC1NTS1ZWVlZXCIpLmZvcm1hdChcIllZWVktTU0tRERcIildLFxyXG4gICAgICB0b0RhdGU6IFtkYXlqcyh0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLmVuZERhdGUsIFwiREQtTU0tWVlZWVwiKS5mb3JtYXQoJ1lZWVktTU0tREQnKV0sXHJcbiAgICAgIHR5cGU6ICdjaGVja2xpc3QnLFxyXG4gICAgICBmaWx0ZXJ0eXBlOiAnQ2x1c3RlcnMnLFxyXG4gICAgICBjaGVja2xpc3ROYW1lOiAnJyxcclxuICAgICAgc3RvcmVMaXN0OiBbdGhpcy5zdG9yZXNdLFxyXG4gICAgICB1c2VyTGlzdDogW3RoaXMudXNlckxpc3RdLFxyXG4gICAgICBhbnN3ZXJUeXBlOiBbJ2FsbCddLFxyXG4gICAgICB2aWV3RmxhZzogW2ZhbHNlXSxcclxuICAgICAgdmlld1JlZG86IFtmYWxzZV0sXHJcbiAgICAgIGNoZWNrTGlzdFR5cGU6IFwiY3VzdG9tXCIsXHJcbiAgICAgIHNvdXJjZUNoZWNrTGlzdF9pZDogXCJcIixcclxuICAgICAgQ2x1c3Rlckxpc3Q6IFt0aGlzLmdyb3Vwc10sXHJcbiAgICAgIFRlYW1zTGlzdDogW3RoaXMuVGVhbXNMaXN0XSxcclxuICAgICAgY2hlY2tMaXN0RGVzY3JpcHRpb246IFwiXCIsXHJcbiAgICAgIGZpbHRlcjogXCJcIixcclxuICAgICAgem9uZUxpc3Q6IFt0aGlzLnpvbmVMaXN0XVxyXG4gICAgfSlcclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUpXHJcblxyXG4gIH1cclxuXHJcbiAgZGF0ZWNoYW5nZShldmVudDogVGltZVBlcmlvZCkge1xyXG4gICAgaWYgKCFldmVudC5lbmREYXRlIHx8ICFldmVudC5zdGFydERhdGUpIHtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICB0aGlzLnJlbW92ZVF1ZXJ5UGFyYW1zKClcclxuICAgIHRoaXMucmVzZXRWYWxpZGF0aW9uKCk7XHJcbiAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnZnJvbURhdGUnKT8uc2V0VmFsdWUoZXZlbnQuc3RhcnREYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpKVxyXG4gICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3RvRGF0ZScpPy5zZXRWYWx1ZShldmVudC5lbmREYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpKVxyXG4gICAgdGhpcy50cmF4U2VydmljZS5nZXRTdG9yZXNsaXN0KHsgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRmlsdGVycy5jbGllbnQsIGNsdXN0ZXJzOiB0aGlzLmdyb3VwcywgY2l0eTogW10gfSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gcmVzLmRhdGEuc3RvcmVzRGF0YTtcclxuICAgICAgICAgIHRoaXMuc3RvcmVzID0gcmVzLmRhdGEuc3RvcmVzRGF0YVxyXG4gICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZSh0aGlzLnN0b3JlTGlzdClcclxuICAgICAgICAgIGlmICh0aGlzLnF1ZXJ5UGFyYW1zLmNoZWNrbGlzdFR5cGUgPT0gJ3Rhc2snIHx8IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ3Rhc2snKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0QWxsVGFza3MoZmFsc2UpXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmdldEFsbENoZWNrTGlzdHMoZmFsc2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5xdWVyeVBhcmFtcy5jaGVja2xpc3RUeXBlID09ICd0YXNrJyB8fCB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICd0YXNrJykge1xyXG4gICAgICAgICAgdGhpcy5nZXRBbGxUYXNrcyhmYWxzZSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5nZXRBbGxDaGVja0xpc3RzKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gIH1cclxuICBnZXRBbGxVc2VycygpIHtcclxuICAgIGxldCB0ZWFtc0xpc3QgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLlRlYW1zTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS50ZWFtTmFtZSlcclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0dXNlcnMoeyBjbGllbnRJZDogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCwgdGVhbXM6IHRlYW1zTGlzdCB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMucXVlcnlQYXJhbXMudXNlckVtYWlsKSB7XHJcbiAgICAgICAgICAgIGxldCBnZXR1c2VyID0gcmVzLmRhdGEuZmlsdGVyKChlbGU6IGFueSkgPT4gZWxlLnVzZXJFbWFpbCA9PT0gdGhpcy5xdWVyeVBhcmFtcy51c2VyRW1haWwpXHJcbiAgICAgICAgICAgIHRoaXMudXNlckxpc3QgPSBnZXR1c2VyO1xyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgndXNlckxpc3QnKT8uc2V0VmFsdWUodGhpcy51c2VyTGlzdClcclxuICAgICAgICAgICAgaWYgKHRoaXMucXVlcnlQYXJhbXMuY2hlY2tsaXN0VHlwZSA9PSAndGFzaycpIHtcclxuICAgICAgICAgICAgICB0aGlzLmdldEFsbFRhc2tzKHRydWUpXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRBbGxDaGVja0xpc3RzKHRydWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnVzZXJMaXN0ID0gcmVzLmRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd1c2VyTGlzdCcpPy5zZXRWYWx1ZSh0aGlzLnVzZXJMaXN0KVxyXG4gICAgICAgICAgICBpZiAoKHRoaXMucXVlcnlQYXJhbXMuc3RvcmVJZCkpIHtcclxuICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgndXNlckxpc3QnKT8uc2V0VmFsdWUoW10pXHJcbiAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2ZpbHRlcnR5cGUnKT8uc2V0VmFsdWUoJ0NsdXN0ZXJzJylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5xdWVyeVBhcmFtcy5jaGVja2xpc3RUeXBlID09ICd0YXNrJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0QWxsVGFza3ModHJ1ZSlcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmdldEFsbENoZWNrTGlzdHModHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG5cclxuXHJcblxyXG4gIH1cclxuICBnZXRBbGxTdG9yZXMoKSB7XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldFN0b3Jlc2xpc3QoeyBjbGllbnRJZDogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCwgY2x1c3RlcnM6IHRoaXMuZ3JvdXBzLCBjaXR5OiBbXSB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ID09PSAndW5pZm9ybWRldGVjdGlvbicpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtNzkxXCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMDYxXCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTEyMjNcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE0MjBcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTEyNVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTE3OVwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xMDQwXCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMTMwXCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTEwMDJcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDEwNjlcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTAyMVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTE0MFwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xMDNcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE2MFwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xMzUyXCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMjU0XCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTEzNTRcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE0NDRcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTQwNVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTU2N1wiXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ID09PSAnc3RhZmZsZWZ0aW50aGVtaWRkbGUnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gW3tcclxuICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS03OTFcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMDYxXCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTExMDlcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMjAwXCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE1OTRcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxNzIxXCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE2NjZcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxNzQ3XCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE4NDNcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMTgxXCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE4NjZcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMTA1XCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE5MDdcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMTY4XCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE5NjNcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMjI2XCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE5NzlcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMzQ3XCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE5ODVcIixcclxuICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMDUwXCJcclxuICAgICAgICAgICAgfV1cclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3QgPT09ICdtb2JpbGV1c2FnZWRldGVjdGlvbicpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTI2MVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTIyNFwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xNDI3XCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxNjI4XCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE0ODhcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDEyOTBcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTY3MVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTc1M1wiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xOTEwXCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMjc0XCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE5MTRcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIyNjNcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTc5OVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjEyNFwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xOTc1XCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMTg0XCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE5ODVcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIwNTBcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMjA2MFwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjE5MVwiXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmICh0aGlzLnNlbGVjdCAgPT09J3VuaWZvcm1kZXRlY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gW1xyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTEyMzlcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDEwNDZcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtNDBcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE1MVwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xMDg0XCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMTYxXCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTEyNVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTIxXCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE0MDVcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE1NjdcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTQzMFwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTMwN1wiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xODc2XCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMjU4XCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE5OTNcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE4MDlcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMjAzM1wiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjA4MFwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0yMDMxXCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMDI0XCJcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICAgIH1lbHNlIGlmKHRoaXMuc2VsZWN0ID09PSAnZXlldGVzdCcpe1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IFtcclxuICB7XCJzdG9yZUlkXCI6IFwiMTEtMTA1NVwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDk0OFwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0xNDNcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1Q0OTJcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtOTkyXCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJTVDQxOFwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS02M1wiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDQyM1wiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0xMzQ5XCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTUzNlwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0xMzg5XCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTM5N1wiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0yMTJcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1Q1OVwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0xNzY3XCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjA3OFwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0xOTc3XCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjExNlwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0yMDg3XCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjI0NFwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0yMTYzXCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjM1OVwiXHJcbn0sXHJcbl1cclxufVxyXG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLnNlbGVjdCA9PT0gJ3N0b3JlaHlnaWVuZW1vbml0b3JpbmcnKSB7XHJcbiAgICAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IFtcclxuICB7XCJzdG9yZUlkXCI6IFwiMTEtNDY3XCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUNjc5XCJcclxufSxcclxue1wic3RvcmVJZFwiOiBcIjExLTE2MThcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxODAzXCJcclxufSxcclxue1wic3RvcmVJZFwiOiBcIjExLTE2OTJcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxNzU2XCJcclxufSxcclxue1wic3RvcmVJZFwiOiBcIjExLTE5MDJcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMDg3XCJcclxufSxcclxue1wic3RvcmVJZFwiOiBcIjExLTIwMDBcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMzY4XCJcclxufSxcclxue1wic3RvcmVJZFwiOiBcIjExLTIwNjlcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMzg0XCJcclxufSxcclxue1wic3RvcmVJZFwiOiBcIjExLTIxNTlcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyNDM1XCJcclxufSxcclxue1wic3RvcmVJZFwiOiBcIjExLTIyMTRcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyNDk2XCJcclxufSxcclxue1wic3RvcmVJZFwiOiBcIjExLTIyMzNcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyNjA0XCJcclxufSxcclxue1wic3RvcmVJZFwiOiBcIjExLTIyNzJcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyNjI5XCJcclxufSxcclxuXSBcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSByZXMuZGF0YS5zdG9yZXNEYXRhO1xyXG5cclxuICAgICAgICAgIH1cclxuXHJcblxyXG5cclxuICAgICAgICAgIGlmICh0aGlzLnF1ZXJ5UGFyYW1zLnN0b3JlSWQpIHtcclxuICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3VzZXJMaXN0Jyk/LnNldFZhbHVlKFtdKVxyXG4gICAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IHJlcy5kYXRhLnN0b3Jlc0RhdGE7XHJcbiAgICAgICAgICAgIGxldCBnZXRzdG9yZSA9IHRoaXMuc3RvcmVMaXN0LmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZS5zdG9yZUlkID09PSB0aGlzLnF1ZXJ5UGFyYW1zLnN0b3JlSWQpXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVzID0gZ2V0c3RvcmVcclxuICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZSh0aGlzLnN0b3JlcylcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnF1ZXJ5UGFyYW1zLmNoZWNrbGlzdFR5cGUgPT0gJ3Rhc2snKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRBbGxUYXNrcyh0cnVlKVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0QWxsQ2hlY2tMaXN0cyh0cnVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnF1ZXJ5UGFyYW1zLnVzZXJFbWFpbCkge1xyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc3RvcmVMaXN0Jyk/LnNldFZhbHVlKFtdKVxyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnZmlsdGVydHlwZScpPy5zZXRWYWx1ZSgnVGVhbXMnKVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZXMgPSByZXMuZGF0YS5zdG9yZXNEYXRhXHJcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZUxpc3QnKT8uc2V0VmFsdWUodGhpcy5zdG9yZUxpc3QpXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnF1ZXJ5UGFyYW1zLmNoZWNrbGlzdFR5cGUgPT0gJ3Rhc2snKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRBbGxUYXNrcyh0cnVlKVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0QWxsQ2hlY2tMaXN0cyh0cnVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IFtdO1xyXG4gICAgICAgICAgdGhpcy52aWV3bG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy52aWV3bm9EYXRhID0gdHJ1ZSxcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuXHJcbiAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbXTtcclxuICAgICAgICB0aGlzLnZpZXdsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy52aWV3bm9EYXRhID0gdHJ1ZSxcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldEFsbENoZWNrTGlzdHModHlwZTogYW55KSB7XHJcbiAgICBsZXQgc3RvcmVzID0gdGhpcy5zdG9yZXM/Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICBmcm9tRGF0ZTogdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2Zyb21EYXRlJyk/LnZhbHVlLFxyXG4gICAgICB0b0RhdGU6IHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd0b0RhdGUnKT8udmFsdWUsXHJcbiAgICAgIHN0b3JlSWQ6IHN0b3JlcyxcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRmlsdGVycz8uY2xpZW50LFxyXG4gICAgICBzb3J0Q29sdW1uTmFtZTogXCJjaGVja0xpc3ROYW1lXCIsXHJcbiAgICAgIHNvcnRCeTogMVxyXG4gICAgfVxyXG4gICAgdGhpcy50cmF4U2VydmljZS5nZXRDaGVja2xpc3RzKHBheWxvYWQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAvLyB0aGlzLmNoZWNrbGlzdHMgPSByZXMuZGF0YS5jaGVja2xpc3REYXRhXHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGlzdHMgPSBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcIl9pZFwiOiBcIjY3ODllM2M3YTU2ODNjNTgyMTVlYzA4OVwiLFxyXG4gICAgICAgICAgICAgIFwic291cmNlQ2hlY2tMaXN0X2lkXCI6IFwiNjc4OWUzYzdhNTY4M2M1ODIxNWVjMDg5XCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3ROYW1lXCI6IFwiRGFpbHkgc3RvcmUgY2hlY2tsaXN0IChOZXcpXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3RUeXBlXCI6IFwiY3VzdG9tXCIsXHJcbiAgICAgICAgICAgICAgXCJjcmVhdGVkQnlOYW1lXCI6IFwiWWFtaW5pXCIsXHJcbiAgICAgICAgICAgICAgXCJzdG9yZUNvdW50XCI6IDIyMTMsXHJcbiAgICAgICAgICAgICAgXCJzY2hlZHVsZVJlcGVhdGVkVHlwZVwiOiBcIndlZWtseVwiLFxyXG4gICAgICAgICAgICAgIFwic2NoZWR1bGVTdGFydFRpbWVcIjogXCIxMTowMCBBTVwiLFxyXG4gICAgICAgICAgICAgIFwic2NoZWR1bGVFbmRUaW1lXCI6IFwiMDE6MzAgUE1cIixcclxuICAgICAgICAgICAgICBcImNvdmVyYWdlXCI6IFwic3RvcmVcIixcclxuICAgICAgICAgICAgICBcImNoZWNrTGlzdERlc2NyaXB0aW9uXCI6IFwiTmVlZHMgdG8gYmUgZmlsbGVkIGJ5IHRoZSBzdG9yZVwiLFxyXG4gICAgICAgICAgICAgIFwicHVibGlzaFwiOiB0cnVlXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcIl9pZFwiOiBcIjY2YjBhMzg1OGFiZGJlMjM2NjFjOGMwYlwiLFxyXG4gICAgICAgICAgICAgIFwic291cmNlQ2hlY2tMaXN0X2lkXCI6IFwiNjZiMGEzODU4YWJkYmUyMzY2MWM4YzBiXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3ROYW1lXCI6IFwiRU9EIFN0b3JlIENoZWNrbGlzdCBOZXdcIixcclxuICAgICAgICAgICAgICBcImNoZWNrTGlzdFR5cGVcIjogXCJjdXN0b21cIixcclxuICAgICAgICAgICAgICBcImNyZWF0ZWRCeU5hbWVcIjogXCJZYW1pbmlcIixcclxuICAgICAgICAgICAgICBcInN0b3JlQ291bnRcIjogMjIxMyxcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlUmVwZWF0ZWRUeXBlXCI6IFwiZGFpbHlcIixcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlU3RhcnRUaW1lXCI6IFwiMDY6MDAgUE1cIixcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlRW5kVGltZVwiOiBcIjExOjMwIFBNXCIsXHJcbiAgICAgICAgICAgICAgXCJjb3ZlcmFnZVwiOiBcInN0b3JlXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3REZXNjcmlwdGlvblwiOiBcIk5lZWRzIHRvIGJlIGZpbGxlZCBieSB0aGUgc3RvcmVcIixcclxuICAgICAgICAgICAgICBcInB1Ymxpc2hcIjogdHJ1ZVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJfaWRcIjogXCI2Nzg5ZTNjN2E1NjgzYzU4MjE1ZWMwODFcIixcclxuICAgICAgICAgICAgICBcInNvdXJjZUNoZWNrTGlzdF9pZFwiOiBcImZhY3RvcnlcIixcclxuICAgICAgICAgICAgICBcImNoZWNrTGlzdE5hbWVcIjogXCJMZW5za2FydCBGYWN0b3J5XCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3RUeXBlXCI6IFwiQUlcIixcclxuICAgICAgICAgICAgICBcImNyZWF0ZWRCeU5hbWVcIjogXCJZYW1pbmlcIixcclxuICAgICAgICAgICAgICBcInN0b3JlQ291bnRcIjogMjIxMyxcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlUmVwZWF0ZWRUeXBlXCI6IFwid2Vla2x5XCIsXHJcbiAgICAgICAgICAgICAgXCJzY2hlZHVsZVN0YXJ0VGltZVwiOiBcIjExOjAwIEFNXCIsXHJcbiAgICAgICAgICAgICAgXCJzY2hlZHVsZUVuZFRpbWVcIjogXCIwMTozMCBQTVwiLFxyXG4gICAgICAgICAgICAgIFwiY292ZXJhZ2VcIjogXCJzdG9yZVwiLFxyXG4gICAgICAgICAgICAgIFwiY2hlY2tMaXN0RGVzY3JpcHRpb25cIjogXCJFbnN1cmVzIGFsbCB0aGUgbWFuZGF0b3J5IHN0ZXBzIGFyZSBkb25lXCIsXHJcbiAgICAgICAgICAgICAgXCJwdWJsaXNoXCI6IHRydWVcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwiX2lkXCI6IFwiNjc0NmQzZThhNzNjNTZlNmM5MGIxYTQyXCIsXHJcbiAgICAgICAgICAgICAgXCJzb3VyY2VDaGVja0xpc3RfaWRcIjogXCJjdXN0b21lcnVuYXR0ZW5kZWRcIixcclxuICAgICAgICAgICAgICBcImNoZWNrTGlzdE5hbWVcIjogXCJDdXN0b21lciBVbmF0dGVuZGVkXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3RUeXBlXCI6IFwiQUlcIixcclxuICAgICAgICAgICAgICBcImNyZWF0ZWRCeU5hbWVcIjogXCJQcmF2ZWVuIFJhanVcIixcclxuICAgICAgICAgICAgICBcInN0b3JlQ291bnRcIjogMjE2NyxcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlUmVwZWF0ZWRUeXBlXCI6IFwiZGFpbHlcIixcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlU3RhcnRUaW1lXCI6IFwiMDY6MDAgQU1cIixcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlRW5kVGltZVwiOiBcIjExOjU5IFBNXCIsXHJcbiAgICAgICAgICAgICAgXCJjb3ZlcmFnZVwiOiBcInN0b3JlXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3REZXNjcmlwdGlvblwiOiBcIlRvIGVuc3VyZSB0aGF0IGN1c3RvbWVycyBhcmUgbm90IGxlZnQgdW5hdHRlbmRlZCBmb3IgZXh0ZW5kZWQgcGVyaW9kcywgcG90ZW50aWFsbHkgbGVhZGluZyB0byBkaXNzYXRpc2ZhY3Rpb24gb3IgbG9zdCBzYWxlcy5cIixcclxuICAgICAgICAgICAgICBcInB1Ymxpc2hcIjogdHJ1ZVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJfaWRcIjogXCI2NzZlNTNlMzBmZWM2YjNlNGVmYzRlZjZcIixcclxuICAgICAgICAgICAgICBcInNvdXJjZUNoZWNrTGlzdF9pZFwiOiBcImV5ZXRlc3RcIixcclxuICAgICAgICAgICAgICBcImNoZWNrTGlzdE5hbWVcIjogXCJFeWUgVGVzdCBDb21wbGlhbmNlXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3RUeXBlXCI6IFwiQUlcIixcclxuICAgICAgICAgICAgICBcImNyZWF0ZWRCeU5hbWVcIjogXCJCZWphblwiLFxyXG4gICAgICAgICAgICAgIFwic3RvcmVDb3VudFwiOiAwLFxyXG4gICAgICAgICAgICAgIFwic2NoZWR1bGVSZXBlYXRlZFR5cGVcIjogXCJkYWlseVwiLFxyXG4gICAgICAgICAgICAgIFwic2NoZWR1bGVTdGFydFRpbWVcIjogXCIxMDowMCBBTVwiLFxyXG4gICAgICAgICAgICAgIFwic2NoZWR1bGVFbmRUaW1lXCI6IFwiMTA6MDAgUE1cIixcclxuICAgICAgICAgICAgICBcImNvdmVyYWdlXCI6IFwic3RvcmVcIixcclxuICAgICAgICAgICAgICBcImNoZWNrTGlzdERlc2NyaXB0aW9uXCI6IFwiVmVyaWZ5IHdoZXRoZXIgb3B0b21ldHJpc3RzIGFyZSBhZGhlcmluZyB0byB0aGUgcHJlc2NyaWJlZCAxMi1zdGVwIGV5ZSB0ZXN0IHByb2Nlc3MgZHVyaW5nIHBhdGllbnQgYXNzZXNzbWVudHMuXCIsXHJcbiAgICAgICAgICAgICAgXCJwdWJsaXNoXCI6IHRydWVcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwiX2lkXCI6IFwiNjc0NmQzZWJhNzNjNTZlNmM5MGIxYTQzXCIsXHJcbiAgICAgICAgICAgICAgXCJzb3VyY2VDaGVja0xpc3RfaWRcIjogXCJtb2JpbGV1c2FnZWRldGVjdGlvblwiLFxyXG4gICAgICAgICAgICAgIFwiY2hlY2tMaXN0TmFtZVwiOiBcIk1vYmlsZSB1c2FnZSBkZXRlY3Rpb25cIixcclxuICAgICAgICAgICAgICBcImNoZWNrTGlzdFR5cGVcIjogXCJBSVwiLFxyXG4gICAgICAgICAgICAgIFwiY3JlYXRlZEJ5TmFtZVwiOiBcIlByYXZlZW4gUmFqdVwiLFxyXG4gICAgICAgICAgICAgIFwic3RvcmVDb3VudFwiOiAyMTEwLFxyXG4gICAgICAgICAgICAgIFwic2NoZWR1bGVSZXBlYXRlZFR5cGVcIjogXCJkYWlseVwiLFxyXG4gICAgICAgICAgICAgIFwic2NoZWR1bGVTdGFydFRpbWVcIjogXCIwNjowMCBBTVwiLFxyXG4gICAgICAgICAgICAgIFwic2NoZWR1bGVFbmRUaW1lXCI6IFwiMTE6NTkgUE1cIixcclxuICAgICAgICAgICAgICBcImNvdmVyYWdlXCI6IFwic3RvcmVcIixcclxuICAgICAgICAgICAgICBcImNoZWNrTGlzdERlc2NyaXB0aW9uXCI6IFwiVG8gcHJldmVudCBzdGFmZiBtZW1iZXJzIGZyb20gdXNpbmcgcGVyc29uYWwgbW9iaWxlIGRldmljZXMgZHVyaW5nIHdvcmsgaG91cnMsIHdoaWNoIGNhbiBsZWFkIHRvIGRpc3RyYWN0aW9ucyBhbmQgcmVkdWNlZCBwcm9kdWN0aXZpdHkuXCIsXHJcbiAgICAgICAgICAgICAgXCJwdWJsaXNoXCI6IHRydWVcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwiX2lkXCI6IFwiNjc2ZTczMTIwZmVjNmIzZTRlZmM0ZWZjXCIsXHJcbiAgICAgICAgICAgICAgXCJzb3VyY2VDaGVja0xpc3RfaWRcIjogXCJyZW1vdGVvcHRvbWV0cmlzdFwiLFxyXG4gICAgICAgICAgICAgIFwiY2hlY2tMaXN0TmFtZVwiOiBcIlJlbW90ZSBPcHRvbWV0cmlzdCBDb21wbGlhbmNlXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3RUeXBlXCI6IFwiQUlcIixcclxuICAgICAgICAgICAgICBcImNyZWF0ZWRCeU5hbWVcIjogXCJCZWphblwiLFxyXG4gICAgICAgICAgICAgIFwic3RvcmVDb3VudFwiOiAwLFxyXG4gICAgICAgICAgICAgIFwic2NoZWR1bGVSZXBlYXRlZFR5cGVcIjogXCJkYWlseVwiLFxyXG4gICAgICAgICAgICAgIFwic2NoZWR1bGVTdGFydFRpbWVcIjogXCIxMDowMCBBTVwiLFxyXG4gICAgICAgICAgICAgIFwic2NoZWR1bGVFbmRUaW1lXCI6IFwiMTA6MDAgUE1cIixcclxuICAgICAgICAgICAgICBcImNvdmVyYWdlXCI6IFwic3RvcmVcIixcclxuICAgICAgICAgICAgICBcImNoZWNrTGlzdERlc2NyaXB0aW9uXCI6IFwiVXNlIHZvaWNlIHJlY29nbml0aW9uIHRvIG1vbml0b3IgYW5kIGVuc3VyZSBvcHRvbWV0cmlzdHMgY29uZHVjdGluZyByZW1vdGUgY29uc3VsdGF0aW9ucyBmb2xsb3cgdGhlIDEyLXN0ZXAgZXllIHRlc3QgcHJvY2Vzcy5cIixcclxuICAgICAgICAgICAgICBcInB1Ymxpc2hcIjogdHJ1ZVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJfaWRcIjogXCI2NzQ2ZDNlZGE3M2M1NmU2YzkwYjFhNDZcIixcclxuICAgICAgICAgICAgICBcInNvdXJjZUNoZWNrTGlzdF9pZFwiOiBcInN0YWZmbGVmdGludGhlbWlkZGxlXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3ROYW1lXCI6IFwiU3RhZmYgbGVmdCBpbiB0aGUgbWlkZGxlXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3RUeXBlXCI6IFwiQUlcIixcclxuICAgICAgICAgICAgICBcImNyZWF0ZWRCeU5hbWVcIjogXCJQcmF2ZWVuIFJhanVcIixcclxuICAgICAgICAgICAgICBcInN0b3JlQ291bnRcIjogMjE2NyxcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlUmVwZWF0ZWRUeXBlXCI6IFwiZGFpbHlcIixcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlU3RhcnRUaW1lXCI6IFwiMDY6MDAgQU1cIixcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlRW5kVGltZVwiOiBcIjExOjU5IFBNXCIsXHJcbiAgICAgICAgICAgICAgXCJjb3ZlcmFnZVwiOiBcInN0b3JlXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3REZXNjcmlwdGlvblwiOiBcIlRvIHByZXZlbnQgZW1wbG95ZWVzIGZyb20gbGVhdmluZyB0aGVpciBwb3N0cyBkdXJpbmcgb3BlcmF0aW5nIGhvdXJzLCBlbnN1cmluZyBhZGVxdWF0ZSBzdGFmZmluZyBsZXZlbHMgYW5kIGN1c3RvbWVyIHNlcnZpY2UuXCIsXHJcbiAgICAgICAgICAgICAgXCJwdWJsaXNoXCI6IHRydWVcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwiX2lkXCI6IFwiNjc2ZTczOTcwZmVjNmIzZTRlZmM0ZWZlXCIsXHJcbiAgICAgICAgICAgICAgXCJzb3VyY2VDaGVja0xpc3RfaWRcIjogXCJzdG9yZWh5Z2llbmVtb25pdG9yaW5nXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3ROYW1lXCI6IFwiU3RvcmUgSHlnaWVuZSBNb25pdG9yaW5nXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3RUeXBlXCI6IFwiQUlcIixcclxuICAgICAgICAgICAgICBcImNyZWF0ZWRCeU5hbWVcIjogXCJCZWphblwiLFxyXG4gICAgICAgICAgICAgIFwic3RvcmVDb3VudFwiOiAwLFxyXG4gICAgICAgICAgICAgIFwic2NoZWR1bGVSZXBlYXRlZFR5cGVcIjogXCJkYWlseVwiLFxyXG4gICAgICAgICAgICAgIFwic2NoZWR1bGVTdGFydFRpbWVcIjogXCIxMDowMCBBTVwiLFxyXG4gICAgICAgICAgICAgIFwic2NoZWR1bGVFbmRUaW1lXCI6IFwiMTA6MDAgUE1cIixcclxuICAgICAgICAgICAgICBcImNvdmVyYWdlXCI6IFwic3RvcmVcIixcclxuICAgICAgICAgICAgICBcImNoZWNrTGlzdERlc2NyaXB0aW9uXCI6IFwiQXNzZXNzIHN0b3JlIGNsZWFubGluZXNzIGJ5IGRldGVybWluaW5nIGlmIHRoZSBkaXNjdXNzaW9uIHRhYmxlcyBhcmUgcHJvcGVybHkgY2xlYW5lZCBhbmQgbWFpbnRhaW5lZC5cIixcclxuICAgICAgICAgICAgICBcInB1Ymxpc2hcIjogdHJ1ZVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJfaWRcIjogXCI2NzQ2ZDNmMGE3M2M1NmU2YzkwYjFhNjBcIixcclxuICAgICAgICAgICAgICBcInNvdXJjZUNoZWNrTGlzdF9pZFwiOiBcInN0b3Jlb3BlbmFuZGNsb3NlXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3ROYW1lXCI6IFwiU3RvcmUgT3BlbiAmIENsb3NlXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3RUeXBlXCI6IFwiQUlcIixcclxuICAgICAgICAgICAgICBcImNyZWF0ZWRCeU5hbWVcIjogXCJQcmF2ZWVuIFJhanVcIixcclxuICAgICAgICAgICAgICBcInN0b3JlQ291bnRcIjogMjExMCxcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlUmVwZWF0ZWRUeXBlXCI6IFwiZGFpbHlcIixcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlU3RhcnRUaW1lXCI6IFwiMDY6MDAgQU1cIixcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlRW5kVGltZVwiOiBcIjExOjU5IFBNXCIsXHJcbiAgICAgICAgICAgICAgXCJjb3ZlcmFnZVwiOiBcInN0b3JlXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3REZXNjcmlwdGlvblwiOiBcIlRvIGVuc3VyZSB0aGF0IHRoZSBzdG9yZSBvcGVucyBhbmQgY2xvc2VzIGF0IHRoZSBkZXNpZ25hdGVkIHRpbWVzLCBtYWludGFpbmluZyBjb25zaXN0ZW50IG9wZXJhdGluZyBob3VycyBmb3IgY3VzdG9tZXJzLlwiLFxyXG4gICAgICAgICAgICAgIFwicHVibGlzaFwiOiB0cnVlXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcIl9pZFwiOiBcIjY3NDZkM2YzYTczYzU2ZTZjOTBiMWE2MVwiLFxyXG4gICAgICAgICAgICAgIFwic291cmNlQ2hlY2tMaXN0X2lkXCI6IFwidW5pZm9ybWRldGVjdGlvblwiLFxyXG4gICAgICAgICAgICAgIFwiY2hlY2tMaXN0TmFtZVwiOiBcIlVuaWZvcm0gZGV0ZWN0aW9uXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3RUeXBlXCI6IFwiQUlcIixcclxuICAgICAgICAgICAgICBcImNyZWF0ZWRCeU5hbWVcIjogXCJQcmF2ZWVuIFJhanVcIixcclxuICAgICAgICAgICAgICBcInN0b3JlQ291bnRcIjogMjI4OSxcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlUmVwZWF0ZWRUeXBlXCI6IFwiZGFpbHlcIixcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlU3RhcnRUaW1lXCI6IFwiMDY6MDAgQU1cIixcclxuICAgICAgICAgICAgICBcInNjaGVkdWxlRW5kVGltZVwiOiBcIjExOjU5IFBNXCIsXHJcbiAgICAgICAgICAgICAgXCJjb3ZlcmFnZVwiOiBcInN0b3JlXCIsXHJcbiAgICAgICAgICAgICAgXCJjaGVja0xpc3REZXNjcmlwdGlvblwiOiBcIlRvIGVuc3VyZSB0aGF0IGFsbCBzdGFmZiBtZW1iZXJzIGFyZSBhZGhlcmluZyB0byB0aGUgY29tcGFueSdzIGRyZXNzIGNvZGUgYW5kIG1haW50YWluaW5nIGEgcHJvZmVzc2lvbmFsIGFwcGVhcmFuY2UuXCIsXHJcbiAgICAgICAgICAgICAgXCJwdWJsaXNoXCI6IHRydWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgXVxyXG5cclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5xdWVyeVBhcmFtcy5zb3VyY2VDaGVja0xpc3RfaWQgJiYgdGhpcy5xdWVyeVBhcmFtcy5jaGVja2xpc3RUeXBlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3NvdXJjZUNoZWNrTGlzdF9pZCcpPy5zZXRWYWx1ZSh0aGlzLnF1ZXJ5UGFyYW1zLnNvdXJjZUNoZWNrTGlzdF9pZClcclxuICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnY2hlY2tMaXN0VHlwZScpPy5zZXRWYWx1ZSh0aGlzLnF1ZXJ5UGFyYW1zLmNoZWNrbGlzdFR5cGUpXHJcbiAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3R5cGUnKT8uc2V0VmFsdWUoXCJjaGVja2xpc3RcIilcclxuXHJcbiAgICAgICAgICAgICAgbGV0IGdldGNoZWNrbGlzdCA9IHRoaXMuY2hlY2tsaXN0cy5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGUuc291cmNlQ2hlY2tMaXN0X2lkID09PSB0aGlzLnF1ZXJ5UGFyYW1zLnNvdXJjZUNoZWNrTGlzdF9pZClcclxuICAgICAgICAgICAgICBpZiAoZ2V0Y2hlY2tsaXN0ICYmIGdldGNoZWNrbGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZ2V0Y2hlY2tsaXN0WzBdLmNoZWNrTGlzdFR5cGUgPT09IFwiQUlcIikge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNob3dmbGFnID0gZmFsc2VcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdjaGVja2xpc3ROYW1lJyk/LnNldFZhbHVlKGdldGNoZWNrbGlzdFswXT8uY2hlY2tMaXN0TmFtZSlcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdjaGVja0xpc3REZXNjcmlwdGlvbicpPy5zZXRWYWx1ZShnZXRjaGVja2xpc3RbMF0/LmNoZWNrTGlzdERlc2NyaXB0aW9uKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2xpc3ROYW1lID0gZ2V0Y2hlY2tsaXN0WzBdPy5jaGVja0xpc3ROYW1lXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmICh0aGlzLnF1ZXJ5UGFyYW1zLmNoZWNrbGlzdFR5cGUgPT09ICdzdG9yZW9wZW5hbmRjbG9zZScpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ID0gJ3N0b3Jlb3BlbmFuZGNsb3NlJ1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZU9wZW5jbG9zZWxpc3QoZmFsc2UpXHJcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmJveGltYWdlQ2hlY2tsaXN0LmluY2x1ZGVzKHRoaXMucXVlcnlQYXJhbXMuY2hlY2tsaXN0VHlwZSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5xdWVyeVBhcmFtcy5jaGVja2xpc3RUeXBlXHJcbiAgICAgICAgICAgICAgICB0aGlzLnF1ZXVlYWxlcnRsaXN0KGZhbHNlKVxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy52aWRlb0NoZWNrbGlzdC5pbmNsdWRlcyh0aGlzLnF1ZXJ5UGFyYW1zLmNoZWNrbGlzdFR5cGUpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCA9IHRoaXMucXVlcnlQYXJhbXMuY2hlY2tsaXN0VHlwZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tZXJ1bmF0dGVuZGVkbGlzdChmYWxzZSlcclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaW1hZ2VDaGVja2xpc3QuaW5jbHVkZXModGhpcy5xdWVyeVBhcmFtcy5jaGVja2xpc3RUeXBlKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QgPSB0aGlzLnF1ZXJ5UGFyYW1zLmNoZWNrbGlzdFR5cGU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldG1vYmlsZVVzYWdlRGF0YWxpc3QoZmFsc2UpXHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuXHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUgJiYgdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja0xpc3RUeXBlICE9ICcnKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnY2hlY2tMaXN0VHlwZScpPy5zZXRWYWx1ZSh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmNoZWNrTGlzdFR5cGUpXHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdjaGVja0xpc3RUeXBlJyk/LnNldFZhbHVlKHRoaXMuY2hlY2tsaXN0c1swXT8uY2hlY2tMaXN0VHlwZSlcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUgJiYgdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja2xpc3ROYW1lICE9ICcnKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgZ2V0Y2hlY2tsaXN0ID0gdGhpcy5jaGVja2xpc3RzLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZS5jaGVja0xpc3ROYW1lID09PSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmNoZWNrbGlzdE5hbWUpXHJcbiAgICAgICAgICAgICAgICBpZiAoZ2V0Y2hlY2tsaXN0ICYmIGdldGNoZWNrbGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChnZXRjaGVja2xpc3RbMF0uY2hlY2tMaXN0VHlwZSA9PT0gXCJBSVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93ZmxhZyA9IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2ZpbHRlcnR5cGUnKT8uc2V0VmFsdWUoZ2V0Y2hlY2tsaXN0WzBdPy5jb3ZlcmFnZSA9PT0gJ3VzZXInID8gXCJUZWFtc1wiIDogXCJDbHVzdGVyc1wiKVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvdmVyYWdlRGF0YShnZXRjaGVja2xpc3RbMF0/LmNvdmVyYWdlKVxyXG5cclxuICAgICAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2NoZWNrTGlzdFR5cGUnKT8uc2V0VmFsdWUoZ2V0Y2hlY2tsaXN0WzBdPy5jaGVja0xpc3RUeXBlKVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnY2hlY2tsaXN0TmFtZScpPy5zZXRWYWx1ZShnZXRjaGVja2xpc3RbMF0/LmNoZWNrTGlzdE5hbWUpXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0TmFtZSA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tsaXN0TmFtZVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc291cmNlQ2hlY2tMaXN0X2lkJyk/LnNldFZhbHVlKGdldGNoZWNrbGlzdFswXT8uc291cmNlQ2hlY2tMaXN0X2lkKVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnY2hlY2tMaXN0RGVzY3JpcHRpb24nKT8uc2V0VmFsdWUoZ2V0Y2hlY2tsaXN0WzBdPy5jaGVja0xpc3REZXNjcmlwdGlvbilcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdmaWx0ZXJ0eXBlJyk/LnNldFZhbHVlKHRoaXMuY2hlY2tsaXN0c1swXT8uY292ZXJhZ2UgPT09ICd1c2VyJyA/IFwiVGVhbXNcIiA6IFwiQ2x1c3RlcnNcIilcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jb3ZlcmFnZURhdGEodGhpcy5jaGVja2xpc3RzWzBdPy5jb3ZlcmFnZSlcclxuXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdjaGVja0xpc3RUeXBlJyk/LnNldFZhbHVlKHRoaXMuY2hlY2tsaXN0c1swXT8uY2hlY2tMaXN0VHlwZSlcclxuICAgICAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2NoZWNrbGlzdE5hbWUnKT8uc2V0VmFsdWUodGhpcy5jaGVja2xpc3RzWzBdPy5jaGVja0xpc3ROYW1lKVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnY2hlY2tMaXN0RGVzY3JpcHRpb24nKT8uc2V0VmFsdWUodGhpcy5jaGVja2xpc3RzWzBdPy5jaGVja0xpc3REZXNjcmlwdGlvbilcclxuXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0TmFtZSA9IHRoaXMuY2hlY2tsaXN0c1swXT8uY2hlY2tMaXN0TmFtZVxyXG4gICAgICAgICAgICAgICAgICBsZXQgZ2V0Y2hlY2tsaXN0ID0gdGhpcy5jaGVja2xpc3RzLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZS5jaGVja0xpc3ROYW1lID09PSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmNoZWNrbGlzdE5hbWUpXHJcbiAgICAgICAgICAgICAgICAgIGlmIChnZXRjaGVja2xpc3QgJiYgZ2V0Y2hlY2tsaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0Y2hlY2tsaXN0WzBdLmNoZWNrTGlzdFR5cGUgPT09IFwiQUlcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93ZmxhZyA9IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tMaXN0RGVzY3JpcHRpb24gPSBnZXRjaGVja2xpc3RbMF0/LmNoZWNrTGlzdERlc2NyaXB0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2NoZWNrTGlzdERlc2NyaXB0aW9uJyk/LnNldFZhbHVlKGdldGNoZWNrbGlzdFswXT8uY2hlY2tMaXN0RGVzY3JpcHRpb24pXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3NvdXJjZUNoZWNrTGlzdF9pZCcpPy5zZXRWYWx1ZShnZXRjaGVja2xpc3RbMF0/LnNvdXJjZUNoZWNrTGlzdF9pZClcclxuICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdmaWx0ZXJ0eXBlJyk/LnNldFZhbHVlKHRoaXMuY2hlY2tsaXN0c1swXT8uY292ZXJhZ2UgPT09ICd1c2VyJyA/IFwiVGVhbXNcIiA6IFwiQ2x1c3RlcnNcIilcclxuICAgICAgICAgICAgICAgIHRoaXMuY292ZXJhZ2VEYXRhKHRoaXMuY2hlY2tsaXN0c1swXT8uY292ZXJhZ2UpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnY2hlY2tMaXN0VHlwZScpPy5zZXRWYWx1ZSh0aGlzLmNoZWNrbGlzdHNbMF0/LmNoZWNrTGlzdFR5cGUpXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jaGVja2xpc3RzWzBdLmNoZWNrTGlzdFR5cGUgPT09IFwiQUlcIikge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNob3dmbGFnID0gZmFsc2VcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdjaGVja2xpc3ROYW1lJyk/LnNldFZhbHVlKHRoaXMuY2hlY2tsaXN0c1swXT8uY2hlY2tMaXN0TmFtZSlcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdjaGVja0xpc3REZXNjcmlwdGlvbicpPy5zZXRWYWx1ZSh0aGlzLmNoZWNrbGlzdHNbMF0/LmNoZWNrTGlzdERlc2NyaXB0aW9uKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2xpc3ROYW1lID0gdGhpcy5jaGVja2xpc3RzWzBdPy5jaGVja0xpc3ROYW1lXHJcbiAgICAgICAgICAgICAgICBsZXQgZ2V0Y2hlY2tsaXN0ID0gdGhpcy5jaGVja2xpc3RzLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZS5jaGVja0xpc3ROYW1lID09PSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmNoZWNrbGlzdE5hbWUpXHJcbiAgICAgICAgICAgICAgICBpZiAoZ2V0Y2hlY2tsaXN0ICYmIGdldGNoZWNrbGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tMaXN0RGVzY3JpcHRpb24gPSBnZXRjaGVja2xpc3RbMF0/LmNoZWNrTGlzdERlc2NyaXB0aW9uXHJcblxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc291cmNlQ2hlY2tMaXN0X2lkJyk/LnNldFZhbHVlKGdldGNoZWNrbGlzdFswXT8uc291cmNlQ2hlY2tMaXN0X2lkKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZCA9PT0gJ3N0b3Jlb3BlbmFuZGNsb3NlJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ID0gJ3N0b3Jlb3BlbmFuZGNsb3NlJ1xyXG4gICAgICAgICAgICAgIHRoaXMuc3RvcmVPcGVuY2xvc2VsaXN0KGZhbHNlKVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYm94aW1hZ2VDaGVja2xpc3QuaW5jbHVkZXModGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3pvbmVMaXN0Jyk/LnNldFZhbHVlKFtdKVxyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWRcclxuICAgICAgICAgICAgICB0aGlzLnF1ZXVlYWxlcnRsaXN0KGZhbHNlKVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaW1hZ2VDaGVja2xpc3QuaW5jbHVkZXModGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3QgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZDtcclxuICAgICAgICAgICAgICB0aGlzLmdldG1vYmlsZVVzYWdlRGF0YWxpc3QoZmFsc2UpXHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy52aWRlb0NoZWNrbGlzdC5pbmNsdWRlcyh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZCkpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdCA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkO1xyXG4gICAgICAgICAgICAgIHRoaXMuY3VzdG9tZXJ1bmF0dGVuZGVkbGlzdChmYWxzZSlcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdCA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ2NoZWNrbGlzdCcgPyBcImN1c3RvbVwiIDogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlO1xyXG4gICAgICAgICAgICAgIGlmICh0eXBlKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlKVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ2NoZWNrbGlzdCcpIHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVydHlwZSA9PT0gJ0NsdXN0ZXJzJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd1c2VyTGlzdCcpPy5zZXRWYWx1ZShbXSlcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlTGlzdGRyb3Bkb3duKCk7XHJcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCIwMDAwMDAwMDAwMDAwMDAwMDAwXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZShbXSlcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJMaXN0ZHJvcGRvd24oKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3Rkcm9wZG93blRhc2soKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jaGVja2xpc3RzID0gW107XHJcbiAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnY2hlY2tsaXN0TmFtZScpPy5zZXRWYWx1ZSgnJylcclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld25vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZVxyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2hlY2tsaXN0cyA9IFtdO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJlbW92ZVF1ZXJ5UGFyYW1zKCkge1xyXG4gICAgdGhpcy5xdWVyeVBhcmFtcyA9IHt9XHJcbiAgICBjb25zdCB1cmxXaXRob3V0UGFyYW1zID0gdGhpcy5sb2NhdGlvbi5wYXRoKCkuc3BsaXQoJz8nKVswXTtcclxuICAgIHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKHVybFdpdGhvdXRQYXJhbXMpO1xyXG4gIH1cclxuICBvblRlYW1zU2VsZWN0KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdUZWFtc0xpc3QnKT8uc2V0VmFsdWUoZXZlbnQpXHJcbiAgICBsZXQgdGVhbXNMaXN0ID0gZXZlbnQubWFwKChkYXRhOiBhbnkpID0+IGRhdGEudGVhbU5hbWUpXHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldHVzZXJzKHsgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRmlsdGVycy5jbGllbnQsIHRlYW1zOiB0ZWFtc0xpc3QgfSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMudXNlckxpc3QgPSByZXMuZGF0YTtcclxuICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd1c2VyTGlzdCcpPy5zZXRWYWx1ZSh0aGlzLnVzZXJMaXN0KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgb25ncm91cFNlbGVjdChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnJlbW92ZVF1ZXJ5UGFyYW1zKClcclxuICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdDbHVzdGVyTGlzdCcpPy5zZXRWYWx1ZShldmVudClcclxuICAgIHRoaXMuZ3JvdXBzID0gZXZlbnQubWFwKChlbDogYW55KSA9PiBlbC5ncm91cE5hbWUpXHJcbiAgICAvLyB0aGlzLmdldEFsbFN0b3JlcygpXHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldFN0b3Jlc2xpc3QoeyBjbGllbnRJZDogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCwgY2x1c3RlcnM6IHRoaXMuZ3JvdXBzLCBjaXR5OiBbXSB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSByZXMuZGF0YS5zdG9yZXNEYXRhO1xyXG4gICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZSh0aGlzLnN0b3JlTGlzdClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiAgZmlsdGVyQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMucmVtb3ZlUXVlcnlQYXJhbXMoKVxyXG4gICAgaWYgKGV2ZW50ID09PSAnVGVhbXMnKSB7XHJcbiAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZXMnKT8uc2V0VmFsdWUoW10pXHJcbiAgICAgIGxldCB0ZWFtc0xpc3QgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLlRlYW1zTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS50ZWFtTmFtZSlcclxuICAgICAgdGhpcy50cmF4U2VydmljZS5nZXR1c2Vycyh7IGNsaWVudElkOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LCB0ZWFtczogdGVhbXNMaXN0IH0pLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnVzZXJMaXN0ID0gcmVzLmRhdGFcclxuICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3VzZXJMaXN0Jyk/LnNldFZhbHVlKHJlcy5kYXRhKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd1c2VyTGlzdCcpPy5zZXRWYWx1ZShbXSlcclxuICAgICAgdGhpcy50cmF4U2VydmljZS5nZXRTdG9yZXNsaXN0KHsgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRmlsdGVycy5jbGllbnQsIGNsdXN0ZXJzOiB0aGlzLmdyb3VwcywgY2l0eTogW10gfSkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gcmVzLmRhdGEuc3RvcmVzRGF0YVxyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc3RvcmVMaXN0Jyk/LnNldFZhbHVlKHJlcy5kYXRhLnN0b3Jlc0RhdGEpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2ZpbHRlcnR5cGUnKT8uc2V0VmFsdWUoZXZlbnQpXHJcbiAgfVxyXG4gIG9uem9uZVNlbGVjdChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnJlbW92ZVF1ZXJ5UGFyYW1zKClcclxuICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd6b25lTGlzdCcpPy5zZXRWYWx1ZShldmVudClcclxuICB9XHJcbiAgYXBwcm92ZUZpbHRlckNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldFN0b3Jlc2xpc3QoeyBjbGllbnRJZDogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCwgY2x1c3RlcnM6IHRoaXMuZ3JvdXBzLCBjaXR5OiBbXSB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSByZXMuZGF0YS5zdG9yZXNEYXRhXHJcbiAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc3RvcmVMaXN0Jyk/LnNldFZhbHVlKHJlcy5kYXRhLnN0b3Jlc0RhdGEpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBvblN0b3JlU2VsZWN0KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMucmVtb3ZlUXVlcnlQYXJhbXMoKVxyXG4gICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3pvbmVMaXN0Jyk/LnNldFZhbHVlKFtdKVxyXG4gICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZShldmVudClcclxuXHJcbiAgICB0aGlzLm1vYmlsZXVzYWdlRGF0YUxpc3QuZm9yRWFjaCgoc3RvcmU6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBpc1N0b3JlU2VsZWN0ZWQgPSBldmVudC5zb21lKChzZWxlY3RlZFN0b3JlOiBhbnkpID0+IHNlbGVjdGVkU3RvcmUuc3RvcmVJZCA9PT0gc3RvcmUuc3RvcmVJZCk7XHJcbiAgICAgIGlmIChpc1N0b3JlU2VsZWN0ZWQpIHtcclxuICAgICAgICBzdG9yZS5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzdG9yZS5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZWxlY3RBbGwgPSB0aGlzLm1vYmlsZXVzYWdlRGF0YUxpc3QuZXZlcnkoKG9iajogYW55KSA9PiBvYmouY2hlY2tlZCk7XHJcbiAgICBpZiAodGhpcy5zZWxlY3QgPT09ICdxdWV1ZWFsZXJ0Jykge1xyXG4gICAgICB0aGlzLmdldHpvbmV0bGlzdCgpXHJcbiAgICB9XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG9uVXNlclNlbGVjdChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnJlbW92ZVF1ZXJ5UGFyYW1zKClcclxuICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd1c2VyTGlzdCcpPy5zZXRWYWx1ZShldmVudClcclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcblxyXG4gIHN0b3JlTGlzdGRyb3Bkb3duVGFzaygpIHtcclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0U3RvcmVzbGlzdCh7IGNsaWVudElkOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LCBjbHVzdGVyczogdGhpcy5ncm91cHMsIGNpdHk6IFtdIH0pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICBsZXQgc3RvcmVzID0gcmVzLmRhdGEuc3RvcmVzRGF0YS5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS5zdG9yZUlkKVxyXG4gICAgICAgICAgbGV0IG9iaiA9IHtcclxuICAgICAgICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICAgICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgICAgICAgXCJDaGVja2xpc3RUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSwgLy8gW1wiY3VzdG9tXCIsIFwiQUlcIl1cclxuICAgICAgICAgICAgXCJjaGVja2xpc3ROYW1lXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tsaXN0TmFtZSxcclxuICAgICAgICAgICAgXCJjaGVja2xpc3RJZFwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZCxcclxuICAgICAgICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgICAgICAgXCJhbnN3ZXJUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuYW5zd2VyVHlwZSwgLy9bXCJkZXNjcmlwdGl2ZVwiLFwieWVzL25vXCIsXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLFwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiLFwiaW1hZ2VcIixcInZpZGVvXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsXCJtdWx0aXBsZUltYWdlXCJdXHJcbiAgICAgICAgICAgIFwidmlld0ZsYWdcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS52aWV3RmxhZywvL1t0cnVlLCBmYWxzZV1cclxuICAgICAgICAgICAgXCJ2aWV3UmVkb1wiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnZpZXdSZWRvLCAvL1t0cnVlLCBmYWxzZV1cclxuICAgICAgICAgICAgXCJmaWx0ZXJcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXIsXHJcbiAgICAgICAgICAgIFwicXVlc3Rpb25zXCI6IHRoaXMuc2VsZWN0ZWRTZWN0aW9uLmxlbmd0aCA+IDAgJiYgdGhpcy5zZWxlY3RlZFNlY3Rpb25bMF0ucXVlc3Rpb25zLmxlbmd0aCA+IDAgPyB0aGlzLnNlbGVjdGVkU2VjdGlvblswXS5xdWVzdGlvbnNbMF0gOiBcIlwiXHJcblxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50cmF4U2VydmljZS5nZXRRdWVzdGlvbnMob2JqKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmVzID0gcmVzLmRhdGEuc3RvcmVzRGV0YWlsc1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldHRhc2tRQShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0dGFza1FBKGZhbHNlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgdXNlckxpc3Rkcm9wZG93blRhc2soKSB7XHJcbiAgICBsZXQgdGVhbXNMaXN0ID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5UZWFtc0xpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEudGVhbU5hbWUpXHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldHVzZXJzKHsgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRmlsdGVycy5jbGllbnQsIHRlYW1zOiB0ZWFtc0xpc3QgfSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd1c2VyTGlzdCcpPy5zZXRWYWx1ZShyZXMuZGF0YSlcclxuICAgICAgICAgIGxldCB1c2VycyA9IHJlcy5kYXRhLm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnVzZXJFbWFpbClcclxuICAgICAgICAgIGxldCBvYmogPSB7XHJcbiAgICAgICAgICAgIFwiZnJvbURhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgICAgICAgIFwiQ2hlY2tsaXN0VHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmNoZWNrTGlzdFR5cGUsIC8vIFtcImN1c3RvbVwiLCBcIkFJXCJdXHJcbiAgICAgICAgICAgIFwiY2hlY2tsaXN0TmFtZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmNoZWNrbGlzdE5hbWUsXHJcbiAgICAgICAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgICAgICAgIFwiZmlsdGVydHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcnR5cGUsXHJcbiAgICAgICAgICAgIFwic3RvcmVJZFwiOiBbXSxcclxuICAgICAgICAgICAgXCJ1c2VyRW1haWxcIjogdXNlcnMsXHJcbiAgICAgICAgICAgIFwiYW5zd2VyVHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmFuc3dlclR5cGUsIC8vW1wiZGVzY3JpcHRpdmVcIixcInllcy9ub1wiLFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIixcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIixcImltYWdlXCIsXCJ2aWRlb1wiLFwiZGVzY3JpcHRpdmVJbWFnZVwiLFwibXVsdGlwbGVJbWFnZVwiXVxyXG4gICAgICAgICAgICBcInZpZXdGbGFnXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudmlld0ZsYWcsLy9bdHJ1ZSwgZmFsc2VdXHJcbiAgICAgICAgICAgIFwidmlld1JlZG9cIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS52aWV3UmVkbywvL1t0cnVlLCBmYWxzZV1cclxuICAgICAgICAgICAgXCJxdWVzdGlvbnNcIjogdGhpcy5zZWxlY3RlZFNlY3Rpb24ubGVuZ3RoID4gMCAmJiB0aGlzLnNlbGVjdGVkU2VjdGlvblswXS5xdWVzdGlvbnMubGVuZ3RoID4gMCA/IHRoaXMuc2VsZWN0ZWRTZWN0aW9uWzBdLnF1ZXN0aW9uc1swXSA6IFwiXCIsXHJcbiAgICAgICAgICAgIFwiZmlsdGVyXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVyLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50cmF4U2VydmljZS5nZXRRdWVzdGlvbnMob2JqKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudXNlckxpc3QgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgndXNlckxpc3QnKT8uc2V0VmFsdWUodGhpcy51c2VyTGlzdClcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZUxpc3QnKT8uc2V0VmFsdWUoW10pXHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IFtdXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldHRhc2tRQShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0dGFza1FBKGZhbHNlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICB1c2VyTGlzdGRyb3Bkb3duKCkge1xyXG4gICAgbGV0IHRlYW1zTGlzdCA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuVGVhbXNMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnRlYW1OYW1lKVxyXG4gICAgdGhpcy50cmF4U2VydmljZS5nZXR1c2Vycyh7IGNsaWVudElkOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LCB0ZWFtczogdGVhbXNMaXN0IH0pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICBsZXQgdXNlcnMgPSByZXMuZGF0YS5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS51c2VyRW1haWwpXHJcbiAgICAgICAgICBsZXQgb2JqID0ge1xyXG4gICAgICAgICAgICBcImZyb21EYXRlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZnJvbURhdGUsXHJcbiAgICAgICAgICAgIFwidG9EYXRlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudG9EYXRlLFxyXG4gICAgICAgICAgICBcIkNoZWNrbGlzdFR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja0xpc3RUeXBlLCAvLyBbXCJjdXN0b21cIiwgXCJBSVwiXVxyXG4gICAgICAgICAgICBcImNoZWNrbGlzdE5hbWVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja2xpc3ROYW1lLFxyXG4gICAgICAgICAgICBcImNoZWNrbGlzdElkXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkLFxyXG4gICAgICAgICAgICBcImZpbHRlcnR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlLFxyXG4gICAgICAgICAgICBcInN0b3JlSWRcIjogW10sXHJcbiAgICAgICAgICAgIFwidXNlckVtYWlsXCI6IHVzZXJzLFxyXG4gICAgICAgICAgICBcImFuc3dlclR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5hbnN3ZXJUeXBlLCAvL1tcImRlc2NyaXB0aXZlXCIsXCJ5ZXMvbm9cIixcIm11bHRpcGxlY2hvaWNlc2luZ2xlXCIsXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsXCJpbWFnZVwiLFwidmlkZW9cIixcImRlc2NyaXB0aXZlSW1hZ2VcIixcIm11bHRpcGxlSW1hZ2VcIl1cclxuICAgICAgICAgICAgXCJ2aWV3RmxhZ1wiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnZpZXdGbGFnLC8vW3RydWUsIGZhbHNlXVxyXG4gICAgICAgICAgICBcInZpZXdSZWRvXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudmlld1JlZG8sLy9bdHJ1ZSwgZmFsc2VdXHJcbiAgICAgICAgICAgIFwicXVlc3Rpb25zXCI6IHRoaXMuc2VsZWN0ZWRTZWN0aW9uLmxlbmd0aCA+IDAgJiYgdGhpcy5zZWxlY3RlZFNlY3Rpb25bMF0ucXVlc3Rpb25zLmxlbmd0aCA+IDAgPyB0aGlzLnNlbGVjdGVkU2VjdGlvblswXS5xdWVzdGlvbnNbMF0gOiBcIlwiLFxyXG4gICAgICAgICAgICBcImZpbHRlclwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcixcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0Y2hlY2tsaXN0KG9iaik/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJMaXN0ID0gcmVzLmRhdGEuc3RvcmVzRGV0YWlsc1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCItLS0tLVwiLCB0aGlzLnVzZXJMaXN0KVxyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3VzZXJMaXN0Jyk/LnNldFZhbHVlKHRoaXMudXNlckxpc3QpXHJcbiAgICAgICAgICAgICAgICAvL2hpZGVkIGJlY296IHdoaWxlIHNlbGVjdCBzaW5nbGUgdXNlciBhbmQgYXBwbHkgaXRzIGFwcGxpZWQgYWxsIHVzZXIgdG8gdGhlIGxpc3RcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZUxpc3QnKT8uc2V0VmFsdWUoW10pXHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IFtdXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldENoZWNrbGlzdFFBKGZhbHNlKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDaGVja2xpc3RRQShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgc3RvcmVMaXN0ZHJvcGRvd24oKSB7XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldFN0b3Jlc2xpc3QoeyBjbGllbnRJZDogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCwgY2x1c3RlcnM6IHRoaXMuZ3JvdXBzLCBjaXR5OiBbXSB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgbGV0IHN0b3JlcyA9IHJlcy5kYXRhLnN0b3Jlc0RhdGEubWFwKChkYXRhOiBhbnkpID0+IGRhdGEuc3RvcmVJZClcclxuICAgICAgICAgIGxldCBvYmogPSB7XHJcbiAgICAgICAgICAgIFwiZnJvbURhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgICAgICAgIFwiQ2hlY2tsaXN0VHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmNoZWNrTGlzdFR5cGUsIC8vIFtcImN1c3RvbVwiLCBcIkFJXCJdXHJcbiAgICAgICAgICAgIFwiY2hlY2tsaXN0TmFtZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmNoZWNrbGlzdE5hbWUsXHJcbiAgICAgICAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgICAgICAgIFwiZmlsdGVydHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcnR5cGUsXHJcbiAgICAgICAgICAgIFwic3RvcmVJZFwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcnR5cGUgPT09ICdDbHVzdGVycycgPyBzdG9yZXMgOiBbXSxcclxuICAgICAgICAgICAgXCJ1c2VyRW1haWxcIjogW10sXHJcbiAgICAgICAgICAgIFwiYW5zd2VyVHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmFuc3dlclR5cGUsIC8vW1wiZGVzY3JpcHRpdmVcIixcInllcy9ub1wiLFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIixcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIixcImltYWdlXCIsXCJ2aWRlb1wiLFwiZGVzY3JpcHRpdmVJbWFnZVwiLFwibXVsdGlwbGVJbWFnZVwiXVxyXG4gICAgICAgICAgICBcInZpZXdGbGFnXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudmlld0ZsYWcsLy9bdHJ1ZSwgZmFsc2VdXHJcbiAgICAgICAgICAgIFwidmlld1JlZG9cIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS52aWV3UmVkbywvL1t0cnVlLCBmYWxzZV1cclxuICAgICAgICAgICAgXCJxdWVzdGlvbnNcIjogdGhpcy5zZWxlY3RlZFNlY3Rpb24ubGVuZ3RoID4gMCAmJiB0aGlzLnNlbGVjdGVkU2VjdGlvblswXS5xdWVzdGlvbnMubGVuZ3RoID4gMCA/IHRoaXMuc2VsZWN0ZWRTZWN0aW9uWzBdLnF1ZXN0aW9uc1swXSA6IFwiXCIsXHJcbiAgICAgICAgICAgIFwiZmlsdGVyXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVyLFxyXG4gICAgICAgICAgICBcImFwcHJvdmVGaWx0ZXJcIjogdGhpcy5hcHByb3ZlRmlsdGVyXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldGNoZWNrbGlzdChvYmopPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZXMgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzXHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IHJlcy5kYXRhLnN0b3Jlc0RldGFpbHNcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZUxpc3QnKT8uc2V0VmFsdWUodGhpcy5zdG9yZXMpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldENoZWNrbGlzdFFBKGZhbHNlKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDaGVja2xpc3RRQShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgc2VsZWN0OmFueSA9ICdjdXN0b20nXHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICBpZiAodGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCA9PT0gXCI0NjRcIikge1xyXG4gICAgICB0aGlzLnJlcXVlc3RQZXJtaXNzaW9uKClcclxuICAgIH1cclxuICAgIHRoaXMub2Zmc2V0ID0gMVxyXG4gICAgdGhpcy5jaGVja2xpc3ROYW1lID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja2xpc3ROYW1lXHJcbiAgICB0aGlzLmNoZWNrTGlzdERlc2NyaXB0aW9uID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja0xpc3REZXNjcmlwdGlvblxyXG4gICAgdGhpcy5zaG93bXVsdGkgPSB0cnVlO1xyXG4gICAgdGhpcy5zaG93c2luZ2xlID0gZmFsc2VcclxuICAgIHRoaXMuYW5zd2VyRmlsdGVyID0gW11cclxuICAgIHRoaXMuc2VsZWN0ZWRTdG9yZXMgPSBbXTtcclxuICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IFtdO1xyXG4gICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkID09PSAnc3RvcmVvcGVuYW5kY2xvc2UnKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ID0gJ3N0b3Jlb3BlbmFuZGNsb3NlJ1xyXG4gICAgICB0aGlzLnN0b3JlT3BlbmNsb3NlbGlzdChmYWxzZSlcclxuICAgIH0gZWxzZSBpZiAodGhpcy5ib3hpbWFnZUNoZWNrbGlzdC5pbmNsdWRlcyh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZCkpIHtcclxuICAgICAgdGhpcy5zZWxlY3QgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZFxyXG4gICAgICB0aGlzLnF1ZXVlYWxlcnRsaXN0KGZhbHNlKVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLmltYWdlQ2hlY2tsaXN0LmluY2x1ZGVzKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkKSkge1xyXG4gICAgICB0aGlzLnNlbGVjdCA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkO1xyXG4gICAgICB0aGlzLmdldG1vYmlsZVVzYWdlRGF0YWxpc3QoZmFsc2UpXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlkZW9DaGVja2xpc3QuaW5jbHVkZXModGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQ7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJ1bmF0dGVuZGVkbGlzdChmYWxzZSlcclxuICAgIH0gZWxzZSBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQgPT09ICdjdXN0b21lcnRyaWFsJykge1xyXG4gICAgICB0aGlzLnNlbGVjdCA9ICdjdXN0b21lcnRyaWFsJztcclxuICAgICAgdGhpcy5nZXRjdXN0b21lcnRyaWFsbGlzdCgpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdCA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ2NoZWNrbGlzdCcgPyBcImN1c3RvbVwiIDogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlO1xyXG4gICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0Jykge1xyXG4gICAgICAgIGlmICh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcnR5cGUgPT09ICdDbHVzdGVycycpIHtcclxuICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd1c2VyTGlzdCcpPy5zZXRWYWx1ZShbXSlcclxuICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ZHJvcGRvd24oKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZShbXSlcclxuICAgICAgICAgIHRoaXMudXNlckxpc3Rkcm9wZG93bigpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlID09PSAnQ2x1c3RlcnMnKSB7XHJcbiAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgndXNlckxpc3QnKT8uc2V0VmFsdWUoW10pXHJcbiAgICAgICAgICB0aGlzLnN0b3JlTGlzdGRyb3Bkb3duVGFzaygpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc3RvcmVMaXN0Jyk/LnNldFZhbHVlKFtdKVxyXG4gICAgICAgICAgdGhpcy51c2VyTGlzdGRyb3Bkb3duVGFzaygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2hvdzogbnVtYmVyID0gMDtcclxuICBhY2NvcmRpYW4oaW5kZXg6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuc2hvdyA9PSBpbmRleCkge1xyXG4gICAgICB0aGlzLnNob3cgPSAtMTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvdyA9IGluZGV4O1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXR6b25ldGxpc3QoKSB7XHJcbiAgICBsZXQgc3RvcmVzID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zdG9yZUxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEuc3RvcmVJZClcclxuICAgIGxldCB6b25lID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS56b25lTGlzdD8ubGVuZ3RoID8gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS56b25lTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS52YWx1ZSkgOiBbXVxyXG4gICAgbGV0IG9iaiA9IHtcclxuICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LFxyXG4gICAgICBcIkNoZWNrbGlzdFR5cGVcIjogdGhpcy5zZWxlY3QsXHJcbiAgICAgIFwib2Zmc2V0XCI6IDAsXHJcbiAgICAgIFwibGltaXRcIjogMTAwMDAsXHJcbiAgICAgIFwidmlld0ltYWdlXCI6IGZhbHNlLFxyXG4gICAgICBcImNhdGVnb3J5XCI6IHpvbmVcclxuICAgIH1cclxuICAgIHRoaXMudHJheFNlcnZpY2UucXVldWVhbGVydGxpc3Qob2JqKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMubW9iaWxldXNhZ2VEYXRhTGlzdCA9IHJlcy5kYXRhLmRhdGFcclxuICAgICAgICAgIHRoaXMubW9iaWxldXNhZ2VEYXRhTGlzdC5mb3JFYWNoKChzdG9yZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHN0b3JlLmNoZWNrZWQgPSB0cnVlO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdEFsbCA9IHRoaXMubW9iaWxldXNhZ2VEYXRhTGlzdC5ldmVyeSgob2JqOiBhbnkpID0+IG9iai5jaGVja2VkKTtcclxuICAgICAgICAgIHRoaXMuem9uZUxpc3QgPSByZXMuZGF0YS56b25lc1xyXG4gICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3pvbmVMaXN0Jyk/LnNldFZhbHVlKHJlcy5kYXRhLnNlbGVjdGVkem9uZXMpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICB9XHJcbiAgcXVldWVhbGVydGxpc3QodHlwZTogYW55KSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgIHRoaXMudmlld2xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy52aWV3bm9EYXRhID0gZmFsc2U7XHJcbiAgICBsZXQgc3RvcmVzID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zdG9yZUxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEuc3RvcmVJZClcclxuICAgIGxldCB6b25lID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS56b25lTGlzdD8ubGVuZ3RoID8gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS56b25lTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS52YWx1ZSkgOiBbXVxyXG4gICAgbGV0IG9iaiA9IHtcclxuICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LFxyXG4gICAgICBcIkNoZWNrbGlzdFR5cGVcIjogdGhpcy5zZWxlY3QsXHJcbiAgICAgIFwib2Zmc2V0XCI6IDAsXHJcbiAgICAgIFwibGltaXRcIjogMTAwMDAsXHJcbiAgICAgIFwidmlld0ltYWdlXCI6IGZhbHNlLFxyXG4gICAgICBcImNhdGVnb3J5XCI6IHpvbmVcclxuICAgIH1cclxuICAgIHRoaXMudHJheFNlcnZpY2UucXVldWVhbGVydGxpc3Qob2JqKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMubW9iaWxldXNhZ2VEYXRhTGlzdCA9IHJlcy5kYXRhLmRhdGFcclxuICAgICAgICAgIHRoaXMuem9uZUxpc3QgPSByZXMuZGF0YS56b25lc1xyXG4gICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3pvbmVMaXN0Jyk/LnNldFZhbHVlKHJlcy5kYXRhLnNlbGVjdGVkem9uZXMpXHJcbiAgICAgICAgICB0aGlzLnN0b3JlcyA9IFtdXHJcbiAgICAgICAgICB0aGlzLm1vYmlsZXVzYWdlRGF0YUxpc3QuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRydWVcclxuICAgICAgICAgICAgdGhpcy5zdG9yZXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgc3RvcmVJZDogZWxlbWVudC5zdG9yZUlkLFxyXG4gICAgICAgICAgICAgIHN0b3JlTmFtZTogZWxlbWVudC5zdG9yZU5hbWVcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIHRoaXMuc3RvcmVzID0gdGhpcy5zdG9yZXNcclxuICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZUxpc3QnKT8uc2V0VmFsdWUodGhpcy5zdG9yZXMpXHJcbiAgICAgICAgICB0aGlzLnNlbGVjdEFsbCA9IHRoaXMubW9iaWxldXNhZ2VEYXRhTGlzdC5ldmVyeSgob2JqOiBhbnkpID0+IG9iai5jaGVja2VkKTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZVxyXG4gICAgICAgICAgdGhpcy52aWV3bG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy52aWV3bm9EYXRhID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnF1ZXVlYWxlcnR2aWV3KClcclxuXHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld25vRGF0YSA9IHRydWU7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHN0b3JlT3BlbmNsb3NlbGlzdCh0eXBlOiBhbnkpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgdGhpcy52aWV3bG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnZpZXdub0RhdGEgPSBmYWxzZTtcclxuICAgIGxldCBzdG9yZXMgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnN0b3JlTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS5zdG9yZUlkKVxyXG4gICAgbGV0IG9iaiA9IHtcclxuICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LFxyXG4gICAgICBcIkNoZWNrbGlzdFR5cGVcIjogdGhpcy5zZWxlY3QsXHJcbiAgICAgIFwib2Zmc2V0XCI6IDAsXHJcbiAgICAgIFwibGltaXRcIjogMTAwMDAsXHJcbiAgICAgIFwidmlld0ltYWdlXCI6IGZhbHNlLFxyXG4gICAgICBcImNhdGVnb3J5XCI6IHRoaXMuY2F0ZWdvcnlcclxuICAgIH1cclxuICAgIHRoaXMudHJheFNlcnZpY2Uuc3RvcmVPcGVuY2xvc2VsaXN0KG9iaik/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLm1vYmlsZXVzYWdlRGF0YUxpc3QgPSByZXMuZGF0YS5zdG9yZW9wZW5hbmRjbG9zZURhdGFcclxuICAgICAgICAgIHRoaXMuc3RvcmVzID0gW11cclxuICAgICAgICAgIHRoaXMubW9iaWxldXNhZ2VEYXRhTGlzdC5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdHJ1ZVxyXG4gICAgICAgICAgICB0aGlzLnN0b3Jlcy5wdXNoKHtcclxuICAgICAgICAgICAgICBzdG9yZUlkOiBlbGVtZW50LnN0b3JlSWQsXHJcbiAgICAgICAgICAgICAgc3RvcmVOYW1lOiBlbGVtZW50LnN0b3JlTmFtZVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgdGhpcy5zdG9yZXMgPSB0aGlzLnN0b3Jlc1xyXG4gICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZSh0aGlzLnN0b3JlcylcclxuICAgICAgICAgIHRoaXMuc2VsZWN0QWxsID0gdGhpcy5tb2JpbGV1c2FnZURhdGFMaXN0LmV2ZXJ5KChvYmo6IGFueSkgPT4gb2JqLmNoZWNrZWQpO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlXHJcbiAgICAgICAgICB0aGlzLnZpZXdsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnZpZXdub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc3RvcmVPcGVuY2xvc2V2aWV3KClcclxuXHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld25vRGF0YSA9IHRydWU7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgcXVldWVhbGVydHZpZXcoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgIHRoaXMubGltaXQgPSAxXHJcbiAgICBsZXQgc3RvcmVzID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zdG9yZUxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEuc3RvcmVJZClcclxuICAgIGxldCB6b25lcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuem9uZUxpc3Q/Lmxlbmd0aCA/IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuem9uZUxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEudmFsdWUpIDogW11cclxuICAgIGxldCBvYmogPSB7XHJcbiAgICAgIFwiZnJvbURhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgIFwic3RvcmVJZFwiOiBzdG9yZXMsXHJcbiAgICAgIFwiY2xpZW50SWRcIjogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCxcclxuICAgICAgXCJDaGVja2xpc3RUeXBlXCI6IHRoaXMuc2VsZWN0LFxyXG4gICAgICBcIm9mZnNldFwiOiAodGhpcy5vZmZzZXQgLSAxKSxcclxuICAgICAgXCJsaW1pdFwiOiB0aGlzLmxpbWl0LFxyXG4gICAgICBcInZpZXdJbWFnZVwiOiB0cnVlLFxyXG4gICAgICBcImNhdGVnb3J5XCI6IHpvbmVzLFxyXG4gICAgfVxyXG4gICAgdGhpcy52aWV3bG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnZpZXdub0RhdGEgPSBmYWxzZTtcclxuICAgIHRoaXMubGltaXQgPSAxXHJcbiAgICB0aGlzLnBhZ2luYXRpb25TaXplcyA9IFsxXVxyXG4gICAgdGhpcy50cmF4U2VydmljZS5xdWV1ZWFsZXJ0bGlzdChvYmopPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5xdWV1ZUFsZXJ0VmlldyA9IHJlcy5kYXRhLmRhdGFcclxuICAgICAgICAgIHRoaXMuem9uZUxpc3QgPSByZXMuZGF0YS56b25lc1xyXG4gICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3pvbmVMaXN0Jyk/LnNldFZhbHVlKHJlcy5kYXRhLnNlbGVjdGVkem9uZXMpXHJcbiAgICAgICAgICB0aGlzLnF1ZXVlQWxlcnRWaWV3LmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBlbGVtZW50LmRhdGVTdHJpbmcgPSBkYXlqcyhlbGVtZW50LmRhdGVTdHJpbmcpLmZvcm1hdCgnREQtTU0tWVlZWScpXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMudG90YWxDb3VudCA9IHJlcy5kYXRhLnRvdGFsX2NvdW50XHJcbiAgICAgICAgICB0aGlzLnZpZXdsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnZpZXdub0RhdGEgPSBmYWxzZVxyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnZpZXdsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnZpZXdub0RhdGEgPSB0cnVlXHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuXHJcbiAgc3RvcmVPcGVuY2xvc2V2aWV3KCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICB0aGlzLmxpbWl0ID0gMTBcclxuICAgIGxldCBzdG9yZXMgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnN0b3JlTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS5zdG9yZUlkKVxyXG4gICAgbGV0IG9iaiA9IHtcclxuICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LFxyXG4gICAgICBcIkNoZWNrbGlzdFR5cGVcIjogdGhpcy5zZWxlY3QsXHJcbiAgICAgIFwib2Zmc2V0XCI6ICh0aGlzLm9mZnNldCAtIDEpLFxyXG4gICAgICBcImxpbWl0XCI6IHRoaXMubGltaXQsXHJcbiAgICAgIFwidmlld0ltYWdlXCI6IHRydWUsXHJcbiAgICAgIFwiY2F0ZWdvcnlcIjogdGhpcy5jYXRlZ29yeVxyXG5cclxuICAgIH1cclxuICAgIHRoaXMudmlld2xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy52aWV3bm9EYXRhID0gZmFsc2U7XHJcbiAgICB0aGlzLmxpbWl0ID0gMTA7XHJcbiAgICB0aGlzLnBhZ2luYXRpb25TaXplcyA9IFsxMF07XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLnN0b3JlT3BlbmNsb3NlbGlzdChvYmopPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5zdG9yZU9wZW5jbG9zZVZpZXcgPSByZXMuZGF0YS5zdG9yZW9wZW5hbmRjbG9zZURhdGFcclxuXHJcbiAgICAgICAgICB0aGlzLnN0b3JlT3BlbmNsb3NlVmlldy5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgZWxlbWVudC5kYXRlU3RyaW5nID0gZGF5anMoZWxlbWVudC5kYXRlU3RyaW5nKS5mb3JtYXQoJ0RELU1NLVlZWVknKVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnRvdGFsQ291bnQgPSByZXMuZGF0YS50b3RhbF9jb3VudFxyXG4gICAgICAgICAgdGhpcy52aWV3bG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy52aWV3bm9EYXRhID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy52aWV3bG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy52aWV3bm9EYXRhID0gdHJ1ZVxyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgY292ZXJhZ2VEYXRhKGNvdmVyYWdlOiBhbnkpIHtcclxuICAgIGlmIChjb3ZlcmFnZSA9PT0gJ3N0b3JlJykge1xyXG4gICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgndXNlckxpc3QnKT8uc2V0VmFsdWUoW10pXHJcbiAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdmaWx0ZXJ0eXBlJyk/LnNldFZhbHVlKCdDbHVzdGVycycpXHJcbiAgICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0U3RvcmVzbGlzdCh7IGNsaWVudElkOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LCBjbHVzdGVyczogdGhpcy5ncm91cHMsIGNpdHk6IFtdIH0pLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IHJlcy5kYXRhLnN0b3Jlc0RhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVzID0gcmVzLmRhdGEuc3RvcmVzRGF0YVxyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc3RvcmVMaXN0Jyk/LnNldFZhbHVlKHRoaXMuc3RvcmVMaXN0KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZXMnKT8uc2V0VmFsdWUoW10pXHJcbiAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdmaWx0ZXJ0eXBlJyk/LnNldFZhbHVlKCdUZWFtcycpXHJcbiAgICAgIGxldCB0ZWFtc0xpc3QgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLlRlYW1zTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS50ZWFtTmFtZSlcclxuICAgICAgdGhpcy50cmF4U2VydmljZS5nZXR1c2Vycyh7IGNsaWVudElkOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LCB0ZWFtczogdGVhbXNMaXN0IH0pLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnVzZXJMaXN0ID0gcmVzLmRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd1c2VyTGlzdCcpPy5zZXRWYWx1ZSh0aGlzLnVzZXJMaXN0KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoZWNrbGlzdE5hbWVjaGFuZ2UoZXZlbnQ6IGFueSwgdHlwZTogYW55KSB7XHJcbiAgICB0aGlzLnJlbW92ZVF1ZXJ5UGFyYW1zKClcclxuICAgIGlmIChldmVudC5jaGVja0xpc3RUeXBlID09PSBcIkFJXCIpIHtcclxuICAgICAgdGhpcy5zaG93ZmxhZyA9IGZhbHNlXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnY2hlY2tMaXN0VHlwZScpPy5zZXRWYWx1ZShldmVudC5jaGVja0xpc3RUeXBlKVxyXG4gICAgICB0aGlzLnNob3dmbGFnID0gdHJ1ZVxyXG4gICAgfVxyXG4gICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3NvdXJjZUNoZWNrTGlzdF9pZCcpPy5zZXRWYWx1ZShldmVudD8uc291cmNlQ2hlY2tMaXN0X2lkKVxyXG4gICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2NoZWNrbGlzdE5hbWUnKT8uc2V0VmFsdWUoZXZlbnQ/LmNoZWNrTGlzdE5hbWUpXHJcbiAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnY2hlY2tMaXN0RGVzY3JpcHRpb24nKT8uc2V0VmFsdWUoZXZlbnQ/LmNoZWNrTGlzdERlc2NyaXB0aW9uKVxyXG50aGlzLnNlbGVjdCA9ZXZlbnQ/LnNvdXJjZUNoZWNrTGlzdF9pZDtcclxuICAgIGlmIChldmVudCAmJiBldmVudC5jb3ZlcmFnZSA9PT0gJ3N0b3JlJykge1xyXG4gICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgndXNlckxpc3QnKT8uc2V0VmFsdWUoW10pXHJcbiAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdmaWx0ZXJ0eXBlJyk/LnNldFZhbHVlKCdDbHVzdGVycycpXHJcbiAgICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0U3RvcmVzbGlzdCh7IGNsaWVudElkOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LCBjbHVzdGVyczogdGhpcy5ncm91cHMsIGNpdHk6IFtdIH0pLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICBpZiAodGhpcy5zZWxlY3QgPT09ICd1bmlmb3JtZGV0ZWN0aW9uJykge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IFtcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS03OTFcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDEwNjFcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTIyM1wiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTQyMFwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xMTI1XCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMTc5XCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTEwNDBcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDExMzBcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTAwMlwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTA2OVwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xMDIxXCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMTQwXCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTEwM1wiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTYwXCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTEzNTJcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDEyNTRcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTM1NFwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTQ0NFwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xNDA1XCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxNTY3XCJcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3QgPT09ICdzdGFmZmxlZnRpbnRoZW1pZGRsZScpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbe1xyXG4gICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTc5MVwiLFxyXG4gICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDEwNjFcIlxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTEwOVwiLFxyXG4gICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDEyMDBcIlxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTU5NFwiLFxyXG4gICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE3MjFcIlxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTY2NlwiLFxyXG4gICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE3NDdcIlxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTg0M1wiLFxyXG4gICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIxODFcIlxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTg2NlwiLFxyXG4gICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIxMDVcIlxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTkwN1wiLFxyXG4gICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIxNjhcIlxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTk2M1wiLFxyXG4gICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIyMjZcIlxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTk3OVwiLFxyXG4gICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIzNDdcIlxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTk4NVwiLFxyXG4gICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIwNTBcIlxyXG4gICAgICAgICAgICB9XVxyXG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdCA9PT0gJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJykge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IFtcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xMjYxXCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMjI0XCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE0MjdcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE2MjhcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTQ4OFwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTI5MFwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xNjcxXCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxNzUzXCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE5MTBcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIyNzRcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTkxNFwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjI2M1wiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xNzk5XCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMTI0XCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE5NzVcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIxODRcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTk4NVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjA1MFwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0yMDYwXCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMTkxXCJcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgaWYgKHRoaXMuc2VsZWN0ICA9PT0ndW5pZm9ybWRldGVjdGlvbicpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTIzOVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTA0NlwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS00MFwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTUxXCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTEwODRcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDExNjFcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTI1XCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMjFcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTQwNVwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTU2N1wiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0xNDMwXCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QxMzA3XCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTE4NzZcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIyNThcIlxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFwiMTEtMTk5M1wiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTgwOVwiXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogXCIxMS0yMDMzXCIsXHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiBcIkxLU1QyMDgwXCJcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiBcIjExLTIwMzFcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIwMjRcIlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXVxyXG4gICAgICAgICAgfSBlbHNlIGlmKHRoaXMuc2VsZWN0ID09PSAnZXlldGVzdCcpe1xyXG4gICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gIFtcclxuICB7XCJzdG9yZUlkXCI6IFwiMTEtMTA1NVwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDk0OFwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0xNDNcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1Q0OTJcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtOTkyXCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJTVDQxOFwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS02M1wiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDQyM1wiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0xMzQ5XCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTUzNlwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0xMzg5XCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMTM5N1wiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0yMTJcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1Q1OVwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0xNzY3XCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjA3OFwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0xOTc3XCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjExNlwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0yMDg3XCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjI0NFwiXHJcbn0sXHJcbntcInN0b3JlSWRcIjogXCIxMS0yMTYzXCIsXHJcbiAgXCJzdG9yZU5hbWVcIjogXCJMS1NUMjM1OVwiXHJcbn0sXHJcbl1cclxuICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuc2VsZWN0ID09PSAnc3RvcmVoeWdpZW5lbW9uaXRvcmluZycpIHtcclxuICAgICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gW1xyXG4gIHtcInN0b3JlSWRcIjogXCIxMS00NjdcIixcclxuICBcInN0b3JlTmFtZVwiOiBcIkxLU1Q2NzlcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMTYxOFwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE4MDNcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMTY5MlwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDE3NTZcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMTkwMlwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIwODdcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMjAwMFwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIzNjhcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMjA2OVwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDIzODRcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMjE1OVwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDI0MzVcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMjIxNFwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDI0OTZcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMjIzM1wiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDI2MDRcIlxyXG59LFxyXG57XCJzdG9yZUlkXCI6IFwiMTEtMjI3MlwiLFxyXG4gIFwic3RvcmVOYW1lXCI6IFwiTEtTVDI2MjlcIlxyXG59LFxyXG5dIFxyXG4gICAgICAgICAgfSBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IHJlcy5kYXRhLnN0b3Jlc0RhdGE7XHJcblxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyB0aGlzLnN0b3JlTGlzdCA9IHJlcy5kYXRhLnN0b3Jlc0RhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVzID0gcmVzLmRhdGEuc3RvcmVzRGF0YVxyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc3RvcmVMaXN0Jyk/LnNldFZhbHVlKHRoaXMuc3RvcmVMaXN0KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZXMnKT8uc2V0VmFsdWUoW10pXHJcbiAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdmaWx0ZXJ0eXBlJyk/LnNldFZhbHVlKCdUZWFtcycpXHJcbiAgICAgIGxldCB0ZWFtc0xpc3QgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLlRlYW1zTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS50ZWFtTmFtZSlcclxuICAgICAgdGhpcy50cmF4U2VydmljZS5nZXR1c2Vycyh7IGNsaWVudElkOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LCB0ZWFtczogdGVhbXNMaXN0IH0pLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnVzZXJMaXN0ID0gcmVzLmRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd1c2VyTGlzdCcpPy5zZXRWYWx1ZSh0aGlzLnVzZXJMaXN0KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgY3VzdG9tZXJ1bmF0dGVuZGVkbGlzdCh0eXBlOiBhbnkpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgdGhpcy52aWV3bG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnZpZXdub0RhdGEgPSBmYWxzZVxyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBsZXQgb2JqID0ge1xyXG4gICAgICBcImRhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LFxyXG4gICAgICBcIkNoZWNrbGlzdFR5cGVcIjogdGhpcy5zZWxlY3QsXHJcbiAgICAgIFwidmlld0ltYWdlXCI6IGZhbHNlLFxyXG4gICAgICBcImxpbWl0XCI6IDEwLFxyXG4gICAgICBcIm9mZnNldFwiOiAwLFxyXG4gICAgICBcImNhdGVnb3J5XCI6IHRoaXMuY2F0ZWdvcnlcclxuICAgIH1cclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0Y3VzdG9tZXJ1bmF0dGVuZGVkbGlzdChvYmopPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5tb2JpbGV1c2FnZURhdGFMaXN0ID0gcmVzLmRhdGEuZGF0YTtcclxuICAgICAgICAgIHRoaXMuc3RvcmVzID0gW107XHJcbiAgICAgICAgICB0aGlzLm1vYmlsZXVzYWdlRGF0YUxpc3QuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRydWVcclxuICAgICAgICAgICAgdGhpcy5zdG9yZXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgc3RvcmVJZDogZWxlbWVudC5zdG9yZUlkLFxyXG4gICAgICAgICAgICAgIHN0b3JlTmFtZTogZWxlbWVudC5zdG9yZU5hbWVcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy50b3RhbENvdW50ID0gcmVzLmRhdGEudG90YWxfY291bnRcclxuICAgICAgICAgIHRoaXMuc2VsZWN0QWxsID0gdGhpcy5tb2JpbGV1c2FnZURhdGFMaXN0LmV2ZXJ5KChvYmo6IGFueSkgPT4gb2JqLmNoZWNrZWQpO1xyXG4gICAgICAgICAgdGhpcy5zdG9yZXMgPSB0aGlzLnN0b3Jlc1xyXG4gICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZSh0aGlzLnN0b3JlcylcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZVxyXG4gICAgICAgICAgdGhpcy5nZXRjdXN0b21lcnVuYXR0ZW5kZWR2aWV3KClcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnZpZXdsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnZpZXdub0RhdGEgPSB0cnVlXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgc2VsZWN0ZWRFeHBvcnQgPSBmYWxzZVxyXG4gIHNlbGVjdGVkUXVlc3Rpb24oZXZlbnQ6IGFueSwgc2VjdGlvbjogYW55LCBRdWVzdGlvbjogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgaWYgKHRoaXMudGVtcHNlbGVjdGVkU2VjdGlvbi5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgIGxldCBxdWVzdGlvbnM6IGFueSA9IFtdXHJcbiAgICAgICAgbGV0IGFuc3dlcjogYW55ID0gW11cclxuICAgICAgICBhbnN3ZXIucHVzaChRdWVzdGlvbi5hbnN3ZXJUeXBlKVxyXG4gICAgICAgIHF1ZXN0aW9ucy5wdXNoKFF1ZXN0aW9uLnFuYW1lLnJlcGxhY2UoL1xcbi9nLCBcIiBcIikpXHJcbiAgICAgICAgbGV0IHJlc3BvbnNlID0ge1xyXG4gICAgICAgICAgc2VjdGlvbk5hbWU6IHNlY3Rpb24uc2VjdGlvbk5hbWUsXHJcbiAgICAgICAgICBxdWVzdGlvbnM6IHF1ZXN0aW9ucyxcclxuICAgICAgICAgIGFuc3dlclR5cGU6IGFuc3dlclxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnRlbXBzZWxlY3RlZFNlY3Rpb24ucHVzaChyZXNwb25zZSlcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsZXQgc2VjdGlvbkV4aXN0cyA9IHRoaXMudGVtcHNlbGVjdGVkU2VjdGlvbi5maWx0ZXIoKGRhdGE6IGFueSkgPT4gZGF0YS5zZWN0aW9uTmFtZSA9PT0gc2VjdGlvbi5zZWN0aW9uTmFtZSlcclxuICAgICAgICBpZiAoc2VjdGlvbkV4aXN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLnRlbXBzZWxlY3RlZFNlY3Rpb24ubWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKGRhdGEuc2VjdGlvbk5hbWUgPT09IHNlY3Rpb24uc2VjdGlvbk5hbWUpIHtcclxuICAgICAgICAgICAgICBkYXRhLnF1ZXN0aW9ucy5wdXNoKFF1ZXN0aW9uLnFuYW1lLnJlcGxhY2UoL1xcbi9nLCBcIiBcIikpXHJcbiAgICAgICAgICAgICAgZGF0YS5hbnN3ZXJUeXBlLnB1c2goUXVlc3Rpb24uYW5zd2VyVHlwZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IHF1ZXN0aW9uczogYW55ID0gW11cclxuICAgICAgICAgIGxldCBhbnN3ZXI6IGFueSA9IFtdXHJcblxyXG5cclxuICAgICAgICAgIGFuc3dlci5wdXNoKFF1ZXN0aW9uLmFuc3dlclR5cGUpXHJcblxyXG4gICAgICAgICAgcXVlc3Rpb25zLnB1c2goUXVlc3Rpb24ucW5hbWUucmVwbGFjZSgvXFxuL2csIFwiIFwiKSlcclxuICAgICAgICAgIGxldCByZXNwb25zZSA9IHtcclxuICAgICAgICAgICAgc2VjdGlvbk5hbWU6IHNlY3Rpb24uc2VjdGlvbk5hbWUsXHJcbiAgICAgICAgICAgIHF1ZXN0aW9uczogcXVlc3Rpb25zLFxyXG4gICAgICAgICAgICBhbnN3ZXJUeXBlOiBhbnN3ZXJcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudGVtcHNlbGVjdGVkU2VjdGlvbi5wdXNoKHJlc3BvbnNlKVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jaGVja2xpc3REYXRhLm1hcCgoc2VjOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoc2VjLnNlY3Rpb25OYW1lID09IHNlY3Rpb24uc2VjdGlvbk5hbWUpIHtcclxuICAgICAgICAgIHNlYy5xdWVzdGlvbnMubWFwKChxdWVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHF1ZXMucW5hbWUgPT09IFF1ZXN0aW9uLnFuYW1lLnJlcGxhY2UoL1xcbi9nLCBcIiBcIikpIHtcclxuICAgICAgICAgICAgICBxdWVzLmNoZWNrZWQgPSB0cnVlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gICAgfSBlbHNlIHtcclxuXHJcbiAgICAgIHRoaXMudGVtcHNlbGVjdGVkU2VjdGlvbi5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhLnNlY3Rpb25OYW1lID09IHNlY3Rpb24uc2VjdGlvbk5hbWUpIHtcclxuICAgICAgICAgIGRhdGEucXVlc3Rpb25zID0gZGF0YS5xdWVzdGlvbnMuZmlsdGVyKChlbGU6IGFueSkgPT4gZWxlICE9IFF1ZXN0aW9uLnFuYW1lLnJlcGxhY2UoL1xcbi9nLCBcIiBcIikpXHJcbiAgICAgICAgICBkYXRhLmFuc3dlclR5cGUgPSBkYXRhLmFuc3dlclR5cGUuZmlsdGVyKChlbGU6IGFueSkgPT4gZWxlICE9IFF1ZXN0aW9uLmFuc3dlclR5cGUpXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICAgdGhpcy50ZW1wc2VsZWN0ZWRTZWN0aW9uID0gdGhpcy50ZW1wc2VsZWN0ZWRTZWN0aW9uLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZS5xdWVzdGlvbnMubGVuZ3RoID4gMClcclxuICAgIH1cclxuXHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZEV4cG9ydCA9IHRoaXMudGVtcHNlbGVjdGVkU2VjdGlvbi5sZW5ndGggPiAwO1xyXG4gIH1cclxuICBnZXRjdXN0b21lcnRyaWFsbGlzdCgpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgdGhpcy52aWV3bG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnZpZXdub0RhdGEgPSBmYWxzZTtcclxuICAgIHRoaXMubW9iaWxldXNhZ2VEYXRhTGlzdCA9IFt7IHN0b3JlSWQ6IFwiNTktMTQ3XCIsIHN0b3JlTmFtZTogXCJCaXJrZW5zdG9jayBEdWJhaSBIaWxsc1wiLCBkZXRlY3Rpb25zOiBcIjIwXCIgfV07XHJcbiAgICB0aGlzLm1vYmlsZXVzYWdlRGF0YUxpc3QuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRydWVcclxuICAgICAgdGhpcy5zdG9yZXMucHVzaCh7XHJcbiAgICAgICAgc3RvcmVJZDogZWxlbWVudC5zdG9yZUlkLFxyXG4gICAgICAgIHN0b3JlTmFtZTogZWxlbWVudC5zdG9yZU5hbWVcclxuICAgICAgfSlcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0QWxsID0gdGhpcy5tb2JpbGV1c2FnZURhdGFMaXN0LmV2ZXJ5KChvYmo6IGFueSkgPT4gb2JqLmNoZWNrZWQpO1xyXG4gICAgdGhpcy5zdG9yZXMgPSB0aGlzLnN0b3Jlc1xyXG4gICAgdGhpcy5tb2JpbGV1c2FnZURhdGEgPVxyXG4gICAgICBbe1xyXG4gICAgICAgIHN0b3JlTmFtZTogXCJCaXJrZW5zdG9jayBEdWJhaSBIaWxsc1wiLFxyXG4gICAgICAgIGltYWdlVXJsOiBbXHJcbiAgICAgICAgICBcInRyYWlsLzU5LTE0Ny9iMWM1YjE1YzAxMzNkZWMwYzQ1NjQwZDkyM2ZkYTIyMV8xMF8wOV81OV8wMDBfMjRfMDFfMjAyNV9mYWxzZS5naWZcIixcclxuICAgICAgICAgIFwidHJhaWwvNTktMTQ3L2IxYzViMTVjMDEzM2RlYzBjNDU2NDBkOTIzZmRhMjIxXzEwXzA5XzU5XzAwMF8yNF8wMV8yMDI1X2ZhbHNlLmdpZlwiLFxyXG4gICAgICAgICAgXCJ0cmFpbC81OS0xNDcvYjFjNWIxNWMwMTMzZGVjMGM0NTY0MGQ5MjNmZGEyMjFfMTBfNDBfMzJfMDAwXzI0XzAxXzIwMjVfZmFsc2UuZ2lmXCIsXHJcbiAgICAgICAgICBcInRyYWlsLzU5LTE0Ny9iMWM1YjE1YzAxMzNkZWMwYzQ1NjQwZDkyM2ZkYTIyMV8xMF81MF80M18wMDBfMjRfMDFfMjAyNV9mYWxzZS5naWZcIixcclxuICAgICAgICAgIFwidHJhaWwvNTktMTQ3L2IxYzViMTVjMDEzM2RlYzBjNDU2NDBkOTIzZmRhMjIxXzExXzAwXzU0XzAwMF8yNF8wMV8yMDI1X2ZhbHNlLmdpZlwiLFxyXG4gICAgICAgICAgXCJ0cmFpbC81OS0xNDcvYjFjNWIxNWMwMTMzZGVjMGM0NTY0MGQ5MjNmZGEyMjFfMTFfMTFfMDVfMDAwXzI0XzAxXzIwMjVfZmFsc2UuZ2lmXCIsXHJcbiAgICAgICAgICBcInRyYWlsLzU5LTE0Ny9iMWM1YjE1YzAxMzNkZWMwYzQ1NjQwZDkyM2ZkYTIyMV8xMV8yMV8xNl8wMDBfMjRfMDFfMjAyNV9mYWxzZS5naWZcIixcclxuICAgICAgICAgIFwidHJhaWwvNTktMTQ3L2IxYzViMTVjMDEzM2RlYzBjNDU2NDBkOTIzZmRhMjIxXzExXzIxXzE5XzAwMF8yNV8wMV8yMDI1XzE3Mzc3ODkxODUuZ2lmXCIsXHJcbiAgICAgICAgICBcInRyYWlsLzU5LTE0Ny9iMWM1YjE1YzAxMzNkZWMwYzQ1NjQwZDkyM2ZkYTIyMV8xMl80Ml80NF8wMDBfMjRfMDFfMjAyNV9mYWxzZS5naWZcIixcclxuICAgICAgICAgIFwidHJhaWwvNTktMTQ3L2IxYzViMTVjMDEzM2RlYzBjNDU2NDBkOTIzZmRhMjIxXzEyXzQyXzUwXzAwMF8yNV8wMV8yMDI1XzE3Mzc3OTQzNDkuZ2lmXCIsXHJcbiAgICAgICAgICBcInRyYWlsLzU5LTE0Ny9iMWM1YjE1YzAxMzNkZWMwYzQ1NjQwZDkyM2ZkYTIyMV8xM18wM18wN18wMDBfMjRfMDFfMjAyNV9mYWxzZS5naWZcIixcclxuICAgICAgICAgIFwidHJhaWwvNTktMTQ3L2IxYzViMTVjMDEzM2RlYzBjNDU2NDBkOTIzZmRhMjIxXzEzXzIzXzI4XzAwMF8yNF8wMV8yMDI1XzE3Mzc3MTAyODMuZ2lmXCIsXHJcbiAgICAgICAgICBcInRyYWlsLzU5LTE0Ny9iMWM1YjE1YzAxMzNkZWMwYzQ1NjQwZDkyM2ZkYTIyMV8xM18zM180N18wMDBfMjVfMDFfMjAyNV8xNzM3Nzk3NTg4LmdpZlwiLFxyXG4gICAgICAgICAgXCJ0cmFpbC81OS0xNDcvYjFjNWIxNWMwMTMzZGVjMGM0NTY0MGQ5MjNmZGEyMjFfMTRfNDRfNTdfMDAwXzI0XzAxXzIwMjVfZmFsc2UuZ2lmXCIsXHJcbiAgICAgICAgICBcInRyYWlsLzU5LTE0Ny9iMWM1YjE1YzAxMzNkZWMwYzQ1NjQwZDkyM2ZkYTIyMV8xOF81OV80MF8wMDBfMjRfMDFfMjAyNV8xNzM3NzMwMjg2LmdpZlwiLFxyXG4gICAgICAgICAgXCJ0cmFpbC81OS0xNDcvYjFjNWIxNWMwMTMzZGVjMGM0NTY0MGQ5MjNmZGEyMjFfMjBfMTBfNTlfMDAwXzI0XzAxXzIwMjVfMTczNzczNDc3My5naWZcIixcclxuICAgICAgICAgIFwidHJhaWwvNTktMTQ3L2IxYzViMTVjMDEzM2RlYzBjNDU2NDBkOTIzZmRhMjIxXzIwXzIxXzEwXzAwMF8yNF8wMV8yMDI1XzE3Mzc3MzUyNDEuZ2lmXCIsXHJcbiAgICAgICAgICBcInRyYWlsLzU5LTE0Ny9iMWM1YjE1YzAxMzNkZWMwYzQ1NjQwZDkyM2ZkYTIyMV8yMV8xMl8wN18wMDBfMjRfMDFfMjAyNV8xNzM3NzM4MjMzLmdpZlwiLFxyXG4gICAgICAgICAgXCJ0cmFpbC81OS0xNDcvYjFjNWIxNWMwMTMzZGVjMGM0NTY0MGQ5MjNmZGEyMjFfMjFfNDJfNDFfMDAwXzI0XzAxXzIwMjVfMTczNzc0MDUwOS5naWZcIixcclxuICAgICAgICAgIFwidHJhaWwvNTktMTQ3L2IxYzViMTVjMDEzM2RlYzBjNDU2NDBkOTIzZmRhMjIxXzIyXzIzXzI3XzAwMF8yNF8wMV8yMDI1XzE3Mzc3NDI0MTIuZ2lmXCIsXHJcbiAgICAgICAgXVxyXG4gICAgICB9XVxyXG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLm5vRGF0YSA9IGZhbHNlXHJcbiAgICB0aGlzLnZpZXdsb2FkaW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLnZpZXdub0RhdGEgPSBmYWxzZVxyXG4gICAgdGhpcy50b3RhbENvdW50ID0gMVxyXG4gIH1cclxuICBnZXRtb2JpbGVVc2FnZURhdGFsaXN0KHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICB0aGlzLnZpZXdsb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMudmlld25vRGF0YSA9IGZhbHNlO1xyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBsZXQgb2JqID0ge1xyXG4gICAgICBcImRhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LFxyXG4gICAgICBcIkNoZWNrbGlzdFR5cGVcIjogdGhpcy5zZWxlY3QsXHJcbiAgICAgIFwidmlld0ltYWdlXCI6IGZhbHNlLFxyXG4gICAgICBcIm9mZnNldFwiOiAodGhpcy5vZmZzZXQgLSAxKSxcclxuICAgICAgXCJsaW1pdFwiOiB0aGlzLmxpbWl0LFxyXG4gICAgICBcImNhdGVnb3J5XCI6IHRoaXMuY2F0ZWdvcnlcclxuICAgIH1cclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0TW9iVXNhZ2VsaXN0KG9iaik/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLm1vYmlsZXVzYWdlRGF0YUxpc3QgPSByZXMuZGF0YS5kYXRhO1xyXG4gICAgICAgICAgdGhpcy5zdG9yZXMgPSBbXVxyXG4gICAgICAgICAgdGhpcy5tb2JpbGV1c2FnZURhdGFMaXN0LmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0cnVlXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVzLnB1c2goe1xyXG4gICAgICAgICAgICAgIHN0b3JlSWQ6IGVsZW1lbnQuc3RvcmVJZCxcclxuICAgICAgICAgICAgICBzdG9yZU5hbWU6IGVsZW1lbnQuc3RvcmVOYW1lXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMudG90YWxDb3VudCA9IHJlcy5kYXRhLnRvdGFsX2NvdW50XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdEFsbCA9IHRoaXMubW9iaWxldXNhZ2VEYXRhTGlzdC5ldmVyeSgob2JqOiBhbnkpID0+IG9iai5jaGVja2VkKTtcclxuICAgICAgICAgIHRoaXMuc3RvcmVzID0gdGhpcy5zdG9yZXNcclxuICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZUxpc3QnKT8uc2V0VmFsdWUodGhpcy5zdG9yZXMpXHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMuZ2V0bW9iaWxlVXNhZ2VEYXRhdmlldygpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy52aWV3bm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZVxyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIG9ucmVzZXQoKSB7XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldFN0b3Jlc2xpc3QoeyBjbGllbnRJZDogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCwgY2x1c3RlcnM6IHRoaXMuZ3JvdXBzLCBjaXR5OiBbXSB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSByZXMuZGF0YS5zdG9yZXNEYXRhO1xyXG4gICAgICAgICAgdGhpcy5zdG9yZXMgPSByZXMuZGF0YS5zdG9yZXNEYXRhXHJcbiAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc3RvcmVMaXN0Jyk/LnNldFZhbHVlKHRoaXMuc3RvcmVMaXN0KVxyXG4gICAgICAgICAgdGhpcy5vZmZzZXQgPSAxXHJcbiAgICAgICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQgPT09ICdzdG9yZW9wZW5hbmRjbG9zZScpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3QgPSAnc3RvcmVvcGVuYW5kY2xvc2UnXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVPcGVuY2xvc2VsaXN0KGZhbHNlKVxyXG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmJveGltYWdlQ2hlY2tsaXN0LmluY2x1ZGVzKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkKSkge1xyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnem9uZUxpc3QnKT8uc2V0VmFsdWUoW10pXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWRcclxuICAgICAgICAgICAgdGhpcy5xdWV1ZWFsZXJ0bGlzdChmYWxzZSlcclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5pbWFnZUNoZWNrbGlzdC5pbmNsdWRlcyh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZCkpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3QgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZDtcclxuICAgICAgICAgICAgdGhpcy5nZXRtb2JpbGVVc2FnZURhdGFsaXN0KGZhbHNlKVxyXG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnZpZGVvQ2hlY2tsaXN0LmluY2x1ZGVzKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkKSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdCA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkO1xyXG4gICAgICAgICAgICB0aGlzLmN1c3RvbWVydW5hdHRlbmRlZGxpc3QoZmFsc2UpXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdCA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ2NoZWNrbGlzdCcgPyBcImN1c3RvbVwiIDogXCJcIjtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVydHlwZSA9PT0gJ0NsdXN0ZXJzJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ZHJvcGRvd24oKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJMaXN0ZHJvcGRvd24oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbXTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICB9XHJcbiAgb252aWV3KCkge1xyXG4gICAgdGhpcy5vZmZzZXQgPSAxO1xyXG4gICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkID09PSAnc3RvcmVvcGVuYW5kY2xvc2UnKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ID0gJ3N0b3Jlb3BlbmFuZGNsb3NlJ1xyXG4gICAgICB0aGlzLnN0b3JlT3BlbmNsb3NldmlldygpXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuYm94aW1hZ2VDaGVja2xpc3QuaW5jbHVkZXModGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWRcclxuICAgICAgdGhpcy5xdWV1ZWFsZXJ0dmlldygpXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW1hZ2VDaGVja2xpc3QuaW5jbHVkZXModGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQ7XHJcbiAgICAgIHRoaXMuZ2V0bW9iaWxlVXNhZ2VEYXRhdmlldygpXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlkZW9DaGVja2xpc3QuaW5jbHVkZXModGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQ7XHJcbiAgICAgIHRoaXMuZ2V0Y3VzdG9tZXJ1bmF0dGVuZGVkdmlldygpXHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldGN1c3RvbWVydW5hdHRlbmRlZHZpZXcoKSB7XHJcblxyXG4gICAgdGhpcy52aWV3bG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnZpZXdub0RhdGEgPSBmYWxzZTtcclxuICAgIHRoaXMubGltaXQgPSAxXHJcbiAgICB0aGlzLnBhZ2luYXRpb25TaXplcyA9IFsxXVxyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBsZXQgb2JqID0ge1xyXG4gICAgICBcImRhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LFxyXG4gICAgICBcIkNoZWNrbGlzdFR5cGVcIjogdGhpcy5zZWxlY3QsXHJcbiAgICAgIFwidmlld0ltYWdlXCI6IHRydWUsXHJcbiAgICAgIFwib2Zmc2V0XCI6ICh0aGlzLm9mZnNldCAtIDEpLFxyXG4gICAgICBcImxpbWl0XCI6IHRoaXMubGltaXQsXHJcbiAgICAgIFwiY2F0ZWdvcnlcIjogdGhpcy5jYXRlZ29yeVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0Y3VzdG9tZXJ1bmF0dGVuZGVkbGlzdChvYmopPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5jdXN0b21lcnVuYXR0ZW5kZWREYXRhID0gcmVzLmRhdGEuZGF0YVxyXG4gICAgICAgICAgdGhpcy52aWV3bG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy52aWV3bm9EYXRhID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMudG90YWxDb3VudCA9IHJlcy5kYXRhLnRvdGFsX2NvdW50XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld25vRGF0YSA9IHRydWU7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgZ2V0bW9iaWxlVXNhZ2VEYXRhdmlldygpIHtcclxuICAgIHRoaXMudmlld2xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy52aWV3bm9EYXRhID0gZmFsc2U7XHJcbiAgICB0aGlzLmxpbWl0ID0gMTBcclxuICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzEwXVxyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBsZXQgb2JqID0ge1xyXG4gICAgICBcImZyb21EYXRlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZnJvbURhdGUsXHJcbiAgICAgIFwidG9EYXRlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudG9EYXRlLFxyXG4gICAgICBcImRhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LFxyXG4gICAgICBcIkNoZWNrbGlzdFR5cGVcIjogdGhpcy5zZWxlY3QsXHJcbiAgICAgIFwidmlld0ltYWdlXCI6IHRydWUsXHJcbiAgICAgIFwib2Zmc2V0XCI6ICh0aGlzLm9mZnNldCAtIDEpLFxyXG4gICAgICBcImxpbWl0XCI6IHRoaXMubGltaXQsXHJcbiAgICAgIFwiY2F0ZWdvcnlcIjogdGhpcy5jYXRlZ29yeVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0TW9iVXNhZ2VsaXN0KG9iaik/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLm1vYmlsZXVzYWdlRGF0YSA9IHJlcy5kYXRhLmRhdGFcclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld25vRGF0YSA9IGZhbHNlXHJcbiAgICAgICAgICB0aGlzLnRvdGFsQ291bnQgPSByZXMuZGF0YS50b3RhbF9jb3VudFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnZpZXdsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnZpZXdub0RhdGEgPSB0cnVlXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgZ2V0ZmlsdGVyQ291bnQoKSB7XHJcbiAgICBsZXQgc3RvcmVzID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zdG9yZUxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEuc3RvcmVJZClcclxuICAgIGxldCB1c2VycyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudXNlckxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEudXNlckVtYWlsKVxyXG4gICAgbGV0IHBheWxvYWQgPSB7XHJcbiAgICAgIFwiZnJvbURhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgIFwiZmlsdGVydHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcnR5cGUsXHJcbiAgICAgIFwic3RvcmVJZFwiOiBzdG9yZXMsXHJcbiAgICAgIFwidXNlckVtYWlsXCI6IHVzZXJzLFxyXG4gICAgICBcImFuc3dlclR5cGVcIjogdGhpcy5zZWxlY3RlZFNlY3Rpb25bMF0uYW5zd2VyVHlwZVswXSxcclxuICAgICAgXCJjaGVja2xpc3RJZFwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZCxcclxuICAgICAgXCJDaGVja2xpc3RUeXBlXCI6IFwiY3VzdG9tXCIsXHJcbiAgICAgIFwicXVlc3Rpb25zXCI6IHRoaXMuc2VsZWN0ZWRTZWN0aW9uWzBdLnF1ZXN0aW9uc1swXVxyXG4gICAgfVxyXG4gICAgdGhpcy50cmF4U2VydmljZS5nZXRBbnN3ZXJjb3VudChwYXlsb2FkKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuYW5zd2VyRmlsdGVyID0gcmVzLmRhdGEuYW5zd2Vyc0NvdW50XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuYW5zd2VyRmlsdGVyID0gW11cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICBjcmVhdGVNdWx0aXBsZVRhc2sodHlwZTogYW55KSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkU3RvcmVzLCB0aGlzLnNlbGVjdGVkVXNlcnMpXHJcblxyXG4gICAgY29uc3QgaXNDbHVzdGVyID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlID09PSAnQ2x1c3RlcnMnO1xyXG4gICAgY29uc3QgaXNSZWRvID0gdHlwZSA9PT0gJ3JlZG8nO1xyXG5cclxuICAgIGNvbnN0IGZpbHRlckZuID0gKGVsZTogYW55KSA9PlxyXG4gICAgICAoaXNSZWRvID8gIWVsZS5yZWRvICYmIHRoaXMuY2hlY2t0b2RheURhdGUoZWxlLmRhdGVfc3RyaW5nKSA6IGVsZS50YXNrSWQgPT09IG51bGwpO1xyXG5cclxuICAgIGlmIChpc0NsdXN0ZXIpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFN0b3JlcyA9IHRoaXMuc2VsZWN0ZWRTdG9yZXMuZmlsdGVyKGZpbHRlckZuKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IHRoaXMuc2VsZWN0ZWRVc2Vycy5maWx0ZXIoZmlsdGVyRm4pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRTdG9yZXMsIHRoaXMuc2VsZWN0ZWRVc2VycylcclxuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihCdWxrY3JlYXRpb25tb2RlbENvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgc2l6ZTogXCJsZ1wiLFxyXG4gICAgICB3aW5kb3dDbGFzczogJ215LW93bi1zdHlsZXMnLFxyXG4gICAgICBiYWNrZHJvcDogJ3N0YXRpYycsXHJcbiAgICAgIGtleWJvYXJkOiBmYWxzZVxyXG5cclxuICAgIH0pO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UudHlwZSA9IHR5cGVcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmZpbHRlcnR5cGUgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcnR5cGVcclxuICAgIGlmICh0aGlzLmlucHV0RGF0YVRhc2subXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlICYmIHRoaXMuaW5wdXREYXRhVGFzay5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuaW5wdXREYXRhVGFzay5xdWVzdGlvblJlZmVyZW5jZUltYWdlID0gdGhpcy5pbnB1dERhdGFUYXNrLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5pbWFnZVVSTCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5pbnB1dERhdGFUYXNrLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgJiYgdGhpcy5pbnB1dERhdGFUYXNrLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgIT0gJycgJiYgdGhpcy5pbnB1dERhdGFUYXNrLnJlZmVyZW5jZUltYWdlICE9IG51bGwpIHtcclxuICAgICAgICB0aGlzLmlucHV0RGF0YVRhc2sucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSA9IFt0aGlzLmlucHV0RGF0YVRhc2sucXVlc3Rpb25SZWZlcmVuY2VJbWFnZT8ucmVmZXJlbmNlSW1hZ2VdXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuaW5wdXREYXRhVGFzaz8uYW5zd2Vycy5mb3JFYWNoKChhbnM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoIVsneWVzL25vJywgJ211bHRpcGxlY2hvaWNlc2luZ2xlJywgJ211bHRpcGxlY2hvaWNlbXVsdGlwbGUnXS5pbmNsdWRlcyh0aGlzLmlucHV0RGF0YVRhc2suYW5zd2VyVHlwZSkpIHtcclxuICAgICAgICBpZiAoYW5zPy5tdWx0aVJlZmVyZW5jZUltYWdlICYmIGFucz8ubXVsdGlSZWZlcmVuY2VJbWFnZS5sZW5ndGgpIHtcclxuICAgICAgICAgIGFucy5yZWZlcmVuY2VJbWFnZSA9IGFucy5tdWx0aVJlZmVyZW5jZUltYWdlLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLmltYWdlVVJMKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKGFucz8ucmVmZXJlbmNlSW1hZ2UgJiYgYW5zPy5yZWZlcmVuY2VJbWFnZSAhPSAnJyAmJiBhbnM/LnJlZmVyZW5jZUltYWdlICE9IG51bGwpIHtcclxuICAgICAgICAgICAgYW5zLnJlZmVyZW5jZUltYWdlID0gW2Fucz8ucmVmZXJlbmNlSW1hZ2VdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8vIGlmIChhbnM/LnJlZmVyZW5jZUltYWdlICYmIGFucz8ucmVmZXJlbmNlSW1hZ2UgIT0gJycgJiYgYW5zPy5yZWZlcmVuY2VJbWFnZSAhPSBudWxsKSB7XHJcbiAgICAgIC8vICAgYW5zLnJlZmVyZW5jZUltYWdlID0gW2Fucz8ucmVmZXJlbmNlSW1hZ2VdXHJcbiAgICAgIC8vIH1cclxuICAgIH0pO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UudGFza0RldGFpbHMgPSB7XHJcbiAgICAgIHNlY3Rpb25zOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgXCJpZFwiOiBcIlwiLFxyXG4gICAgICAgICAgXCJuYW1lXCI6IFwiXCIsXHJcbiAgICAgICAgICBcInF1ZXN0aW9uc1wiOiBbdGhpcy5pbnB1dERhdGFUYXNrXVxyXG4gICAgICAgIH1cclxuICAgICAgXVxyXG5cclxuICAgIH07XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5zb3VyY2VDaGVja0xpc3RfaWQgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZFxyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UucGF5bG9hZCA9IHtcclxuICAgICAgY292ZXJhZ2U6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVydHlwZSA9PT0gJ1RlYW1zJyA/IFwidXNlclwiIDogXCJzdG9yZVwiLFxyXG4gICAgICBzZWxlY3RlZFN0b3JlczogdGhpcy5zZWxlY3RlZFN0b3JlcyxcclxuICAgICAgc2VsZWN0ZWRVc2VyczogdGhpcy5zZWxlY3RlZFVzZXJzLFxyXG4gICAgICBvcGVyYXRpb250eXBlOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGUsXHJcbiAgICAgIGlucHV0RGF0YTogdGhpcy5pbnB1dERhdGFUYXNrLFxyXG4gICAgICBzZWN0aW9uSW5mbzogdGhpcy5vdGhlclRhc2tEYXRhLnNlY3Rpb25JbmZvLFxyXG4gICAgICByZWZJbWFnZTogdGhpcy5yZWZJbWFnZSxcclxuICAgICAgY2hlY2tsaXN0TmFtZTogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja2xpc3ROYW1lLFxyXG4gICAgfTtcclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRTdG9yZXMubGVuZ3RoKVxyXG4gICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIiYmJiYmJiZcIiwgcmVzdWx0KVxyXG4gICAgICBpZiAocmVzdWx0ID09PSAnc3VibWl0Jykge1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiKioqKioqKioqKioqXCIpXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN0b3JlcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IFtdO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0QWxsVGFzayA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5zaG93c2luZ2xlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaG93bXVsdGkgPSB0cnVlO1xyXG4gICAgICAgIGlmICh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnKSB7XHJcbiAgICAgICAgICB0aGlzLmdldENoZWNrbGlzdFFBKGZhbHNlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5nZXRUYXNrUUEodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIHNlbGVjdGVkQWxsVGFzayhldmVudDogYW55LCBjaGVja2xpc3Q6IGFueSwgZGF0YTogYW55LCBjaGVja2xpc3RJbmZvOiBhbnksIHNlY3Rpb25JbmZvOiBhbnkpIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKGRhdGEpXHJcbiAgICAvLyBjb25zb2xlLmxvZyhcIiBzZWxlY3RlZEFsbFRhc2sgMTEgPT5cIilcclxuICAgIGxldCBhbnN3ZXI6IGFueSA9IFtdXHJcbiAgICBhbnN3ZXIgPSBkYXRhLnVzZXJBbnN3ZXIubWFwKChkYXRhOiBhbnkpID0+IGRhdGEuYW5zd2VyKVxyXG4gICAgLy8gY29uc29sZS5sb2coYW5zd2VyKVxyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0QWxsVGFzayA9IGV2ZW50LnRhcmdldC5jaGVja2VkO1xyXG5cclxuXHJcbiAgICAgIHRoaXMuaW5wdXREYXRhVGFzayA9IGRhdGFcclxuICAgICAgdGhpcy5yZWZJbWFnZSA9IFsuLi50aGlzLnJlZkltYWdlLCAuLi5hbnN3ZXJdXHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMucmVmSW1hZ2UpXHJcbiAgICAgIHRoaXMub3RoZXJUYXNrRGF0YSA9IHtcclxuICAgICAgICBzZWN0aW9uSW5mbzogc2VjdGlvbkluZm8sXHJcbiAgICAgIH1cclxuICAgICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICAgIGxldCB1c2VycyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudXNlckxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEudXNlckVtYWlsKVxyXG4gICAgICB0aGlzLnZpZXdDaGVja2xpc3Rzb3B0aW9ucyA9IHtcclxuICAgICAgICBcImZyb21EYXRlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZnJvbURhdGUsXHJcbiAgICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgICAgXCJDaGVja2xpc3RUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ3Rhc2snID8gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlIDogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja0xpc3RUeXBlLCAvLyBbXCJjaGVja2xpc3RcIiwgXCJ0YXNrXCJdXHJcbiAgICAgICAgXCJjaGVja2xpc3ROYW1lXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tsaXN0TmFtZSxcclxuICAgICAgICBcImZpbHRlcnR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlLFxyXG4gICAgICAgIFwic3RvcmVJZFwiOiBzdG9yZXMsXHJcbiAgICAgICAgXCJ1c2VyRW1haWxcIjogdXNlcnMsXHJcbiAgICAgICAgXCJhbnN3ZXJUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuYW5zd2VyVHlwZSwgLy9bXCJkZXNjcmlwdGl2ZVwiLFwieWVzL25vXCIsXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLFwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiLFwiaW1hZ2VcIixcInZpZGVvXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsXCJtdWx0aXBsZUltYWdlXCJdICAgICAgXHJcbiAgICAgICAgXCJvZmZzZXRcIjogMCxcclxuICAgICAgICBcImxpbWl0XCI6IDEwMDAwLFxyXG4gICAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgICAgXCJzb3VyY2VDaGVja0xpc3RfaWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgICAgXCJ2aWV3RmxhZ1wiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnZpZXdGbGFnLFxyXG4gICAgICAgIFwidmlld1JlZG9cIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS52aWV3UmVkbywvL1t0cnVlLCBmYWxzZV1cclxuICAgICAgICBcInF1ZXN0aW9uc1wiOiB0aGlzLnNlbGVjdGVkU2VjdGlvbixcclxuICAgICAgICBcImZpbHRlclwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcixcclxuICAgICAgICBcImFwcHJvdmVGaWx0ZXJcIjogdGhpcy5hcHByb3ZlRmlsdGVyLFxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldGFsbGNoZWNrbGlzdCh0aGlzLnZpZXdDaGVja2xpc3Rzb3B0aW9ucyk/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvdGFscmVjb3JkY291bnQgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzLmxlbmd0aFxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmVjb3JkQ291bnQgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzLmxlbmd0aFxyXG4gICAgICAgICAgICByZXMuZGF0YS5zdG9yZXNEZXRhaWxzLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKCFlbGUuYXBwcm92YWxTdGF0dXMpIHtcclxuICAgICAgICAgICAgICAgIGlmICghZWxlLnJlZG8gfHwgIWVsZS50YXNrSWQpIHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVydHlwZSA9PT0gJ0NsdXN0ZXJzJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTdG9yZXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdG9yZU5hbWU6IGVsZS5zdG9yZU5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdG9yZUlkOiBlbGUuc3RvcmVfaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICB1c2VyRW1haWw6IGVsZS51c2VyRW1haWwsXHJcbiAgICAgICAgICAgICAgICAgICAgICBjaGVja2xpc3RJZDogZWxlLmNoZWNrbGlzdElkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbl9pZDogZWxlLnNlY3Rpb25faWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICB1bmlxdWVObzogZGF0YS51bmlxdWVObyxcclxuICAgICAgICAgICAgICAgICAgICAgIHVzZXJOYW1lOiBlbGUudXNlck5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICBkYXRlX3N0cmluZzogZWxlLmRhdGVfc3RyaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgdGFza0lkOiBlbGUudGFza0lkID8gZWxlLnRhc2tJZCA6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICByZWRvOiBlbGUucmVkb1xyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFVzZXJzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgdXNlckVtYWlsOiBlbGUudXNlckVtYWlsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgY2hlY2tsaXN0SWQ6IGVsZS5jaGVja2xpc3RJZCxcclxuICAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb25faWQ6IGVsZS5zZWN0aW9uX2lkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgdW5pcXVlTm86IGRhdGEudW5pcXVlTm8sXHJcbiAgICAgICAgICAgICAgICAgICAgICB1c2VyTmFtZTogZWxlLnVzZXJOYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zdHJpbmc6IGVsZS5kYXRlX3N0cmluZyxcclxuICAgICAgICAgICAgICAgICAgICAgIHRhc2tJZDogZWxlLnRhc2tJZCA/IGVsZS50YXNrSWQgOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgcmVkbzogZWxlLnJlZG9cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICB0aGlzLnZpZXdDaGVja2xpc3RzRGF0YS5jaGVja2xpc3RBbnN3ZXJzLm1hcCgoZGV0YWlsczogYW55KSA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLnN0b3Jlc0RldGFpbHMuZmlsdGVyKChlbGU6IGFueSkgPT4gZWxlLnVzZXJFbWFpbCA9PT0gZGV0YWlscy5zdG9yZVByb2ZpbGU/LnVzZXJFbWFpbCkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICBkZXRhaWxzLnF1ZXN0aW9uQW5zd2VyWzBdLnF1ZXN0aW9uc1swXS5jaGVja2VkID0gdHJ1ZVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG5cclxuXHJcblxyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0QWxsVGFzayA9IGZhbHNlXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRSZWNvcmRDb3VudCA9IDBcclxuICAgICAgdGhpcy52aWV3Q2hlY2tsaXN0c0RhdGEuY2hlY2tsaXN0QW5zd2Vycy5tYXAoKGRldGFpbHM6IGFueSkgPT4ge1xyXG4gICAgICAgIGRldGFpbHMucXVlc3Rpb25BbnN3ZXJbMF0ucXVlc3Rpb25zWzBdLmNoZWNrZWQgPSBmYWxzZVxyXG4gICAgICB9KVxyXG4gICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkU3RvcmVzKVxyXG4gICAgICB0aGlzLnJlZkltYWdlID0gdGhpcy5yZWZJbWFnZS5maWx0ZXIoKGRhdGEpID0+IGRhdGEuYW5zd2VyKVxyXG4gICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlID09PSAnQ2x1c3RlcnMnKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN0b3JlcyA9IFtdXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gW11cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG5cclxuXHJcbiAgc2VsZWN0bXVsdGlUYXNrKGV2ZW50OiBhbnksIGNoZWNrbGlzdDogYW55LCBkYXRhOiBhbnksIGNoZWNrbGlzdEluZm86IGFueSwgc2VjdGlvbkluZm86IGFueSkge1xyXG4gICAgLy8gY29uc29sZS5sb2coc2VjdGlvbkluZm8pXHJcbiAgICAvLyBjb25zb2xlLmxvZyhcIiBzZWxlY3RtdWx0aVRhc2sgMTEgPT5cIilcclxuICAgIGxldCBhbnN3ZXI6IGFueSA9IFtdXHJcbiAgICBhbnN3ZXIgPSBkYXRhLnVzZXJBbnN3ZXIubWFwKChkYXRhOiBhbnkpID0+IGRhdGEuYW5zd2VyKVxyXG4gICAgLy8gY29uc29sZS5sb2coYW5zd2VyKVxyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuaW5wdXREYXRhVGFzayA9IGRhdGFcclxuICAgICAgdGhpcy5yZWZJbWFnZSA9IFsuLi50aGlzLnJlZkltYWdlLCAuLi5hbnN3ZXJdXHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMucmVmSW1hZ2UpXHJcbiAgICAgIHRoaXMub3RoZXJUYXNrRGF0YSA9IHtcclxuICAgICAgICBzZWN0aW9uSW5mbzogc2VjdGlvbkluZm8sXHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVydHlwZSA9PT0gJ0NsdXN0ZXJzJykge1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGNoZWNrbGlzdC5jaGVja2xpc3RJbmZvKVxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTdG9yZXMucHVzaCh7XHJcbiAgICAgICAgICBzZWN0aW9uX2lkOiBzZWN0aW9uSW5mby5zZWN0aW9uX2lkLFxyXG4gICAgICAgICAgc3RvcmVJZDogY2hlY2tsaXN0LnN0b3JlUHJvZmlsZS5zdG9yZV9pZCxcclxuICAgICAgICAgIHN0b3JlTmFtZTogY2hlY2tsaXN0LnN0b3JlUHJvZmlsZS5zdG9yZU5hbWUsXHJcbiAgICAgICAgICBjaGVja2xpc3RJZDogY2hlY2tsaXN0SW5mby5jaGVja2xpc3RJZCxcclxuICAgICAgICAgIHVzZXJFbWFpbDogY2hlY2tsaXN0LmNoZWNrbGlzdEluZm8udXNlckVtYWlsLFxyXG4gICAgICAgICAgdW5pcXVlTm86IGRhdGEudW5pcXVlTm8sXHJcbiAgICAgICAgICB0YXNrSWQ6IGRhdGEudGFza0lkID8gZGF0YS50YXNrSWQgOiBudWxsLFxyXG4gICAgICAgICAgcmVkbzogZGF0YS5yZWRvLFxyXG4gICAgICAgICAgZGF0ZV9zdHJpbmc6IGRheWpzKGNoZWNrbGlzdC5jaGVja2xpc3RJbmZvLmRhdGUsIFwiREQgTU1NIFlZWVlcIikuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFVzZXJzLnB1c2goe1xyXG4gICAgICAgICAgc2VjdGlvbl9pZDogc2VjdGlvbkluZm8uc2VjdGlvbl9pZCxcclxuICAgICAgICAgIHVzZXJFbWFpbDogY2hlY2tsaXN0LmNoZWNrbGlzdEluZm8udXNlckVtYWlsLFxyXG4gICAgICAgICAgdXNlck5hbWU6IGNoZWNrbGlzdC5jaGVja2xpc3RJbmZvLnN1Ym1pdHRlZEJ5LFxyXG4gICAgICAgICAgY2hlY2tsaXN0SWQ6IGNoZWNrbGlzdEluZm8uY2hlY2tsaXN0SWQsXHJcbiAgICAgICAgICB1bmlxdWVObzogZGF0YS51bmlxdWVObyxcclxuICAgICAgICAgIHRhc2tJZDogZGF0YS50YXNrSWQgPyBkYXRhLnRhc2tJZCA6IG51bGwsXHJcbiAgICAgICAgICByZWRvOiBkYXRhLnJlZG8sXHJcbiAgICAgICAgICBkYXRlX3N0cmluZzogZGF5anMoY2hlY2tsaXN0LmNoZWNrbGlzdEluZm8uZGF0ZSwgXCJERCBNTU0gWVlZWVwiKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpXHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG5cclxuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlZkltYWdlID0gdGhpcy5yZWZJbWFnZS5maWx0ZXIoKGRhdGEpID0+IGRhdGEuYW5zd2VyKVxyXG4gICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlID09PSAnQ2x1c3RlcnMnKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN0b3JlcyA9IHRoaXMuc2VsZWN0ZWRTdG9yZXMuZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEuY2hlY2tsaXN0SWQgIT0gY2hlY2tsaXN0SW5mby5jaGVja2xpc3RJZClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSB0aGlzLnNlbGVjdGVkVXNlcnMuZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEuY2hlY2tsaXN0SWQgIT0gY2hlY2tsaXN0SW5mby5jaGVja2xpc3RJZClcclxuICAgICAgfVxyXG4gICAgICAvLyBjb25zb2xlLmxvZyhjaGVja2xpc3RJbmZvLmNoZWNrbGlzdElkKVxyXG4gICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkU3RvcmVzKVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZFJlY29yZENvdW50ID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlID09PSAnQ2x1c3RlcnMnXHJcbiAgICAgID8gdGhpcy5zZWxlY3RlZFN0b3Jlcy5sZW5ndGhcclxuICAgICAgOiB0aGlzLnNlbGVjdGVkVXNlcnMubGVuZ3RoO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0QWxsVGFzayA9IHRoaXMudG90YWxyZWNvcmRjb3VudCA9PT0gdGhpcy5zZWxlY3RlZFJlY29yZENvdW50O1xyXG4gICAgLy8gY29uc29sZS5sb2codGhpcy5zZWxlY3RlZFJlY29yZENvdW50LCB0aGlzLnRvdGFscmVjb3JkY291bnQpXHJcbiAgfVxyXG4gIHNlbGVjdHNpbmdsZXF1ZXN0aW9uKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFN0b3JlcyA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gW107XHJcbiAgICB0aGlzLnRvdGFscmVjb3JkY291bnQgPSAwO1xyXG4gICAgdGhpcy5zZWxlY3RlZFJlY29yZENvdW50ID0gMFxyXG4gICAgdGhpcy5zZWxlY3RBbGxUYXNrID0gZmFsc2VcclxuICAgIHRoaXMuc2VsZWN0ZWRTZWN0aW9uID0gdGhpcy50ZW1wc2VsZWN0ZWRTZWN0aW9uXHJcbiAgICBpZiAodGhpcy5xdWVzdGlvbnNjb3VudCh0aGlzLnNlbGVjdGVkU2VjdGlvbikgPT0gMCB8fCB0aGlzLnF1ZXN0aW9uc2NvdW50KHRoaXMuc2VsZWN0ZWRTZWN0aW9uKSA+IDEpIHtcclxuICAgICAgdGhpcy5zaG93c2luZ2xlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2hvd211bHRpID0gdHJ1ZVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLnF1ZXN0aW9uc2NvdW50KHRoaXMuc2VsZWN0ZWRTZWN0aW9uKSA9PSAxKSB7XHJcbiAgICAgIHRoaXMuc2hvd3NpbmdsZSA9IHRydWU7XHJcbiAgICAgIHRoaXMuc2hvd211bHRpID0gZmFsc2VcclxuXHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkU2VjdGlvblswXS5hbnN3ZXJUeXBlWzBdID09PSBcInllcy9ub1wiIHx8IHRoaXMuc2VsZWN0ZWRTZWN0aW9uWzBdLmFuc3dlclR5cGVbMF0gPT09IFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIiB8fCB0aGlzLnNlbGVjdGVkU2VjdGlvblswXS5hbnN3ZXJUeXBlWzBdID09PSBcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIikge1xyXG4gICAgICAgIHRoaXMuc2hvd2ZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5nZXRmaWx0ZXJDb3VudCgpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zaG93ZmlsdGVyID0gZmFsc2VcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIHRoaXMub2Zmc2V0ID0gMTtcclxuICAgIHRoaXMudmlld2xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy52aWV3bm9EYXRhID0gZmFsc2U7XHJcbiAgICBsZXQgc3RvcmVzID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zdG9yZUxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEuc3RvcmVJZClcclxuICAgIGxldCB1c2VycyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudXNlckxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEudXNlckVtYWlsKVxyXG4gICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ2NoZWNrbGlzdCcpIHtcclxuICAgICAgbGV0IG9iaiA9IHtcclxuICAgICAgICBcImZyb21EYXRlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZnJvbURhdGUsXHJcbiAgICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgICAgXCJDaGVja2xpc3RUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tMaXN0VHlwZSwgLy8gW1wiY3VzdG9tXCIsIFwiQUlcIl1cclxuICAgICAgICBcImNoZWNrbGlzdE5hbWVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja2xpc3ROYW1lLFxyXG4gICAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgICAgXCJmaWx0ZXJ0eXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVydHlwZSxcclxuICAgICAgICBcInN0b3JlSWRcIjogc3RvcmVzLFxyXG4gICAgICAgIFwidXNlckVtYWlsXCI6IHVzZXJzLFxyXG4gICAgICAgIFwiYW5zd2VyVHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmFuc3dlclR5cGUsIC8vW1wiZGVzY3JpcHRpdmVcIixcInllcy9ub1wiLFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIixcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIixcImltYWdlXCIsXCJ2aWRlb1wiLFwiZGVzY3JpcHRpdmVJbWFnZVwiLFwibXVsdGlwbGVJbWFnZVwiXVxyXG4gICAgICAgIFwidmlld0ZsYWdcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS52aWV3RmxhZywgLy9bdHJ1ZSwgZmFsc2VdXHJcbiAgICAgICAgXCJ2aWV3UmVkb1wiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnZpZXdSZWRvLCAvL1t0cnVlLCBmYWxzZV1cclxuICAgICAgICBcImZpbHRlclwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcixcclxuICAgICAgICBcInF1ZXN0aW9uc1wiOiB0aGlzLnNlbGVjdGVkU2VjdGlvbi5sZW5ndGggPiAwICYmIHRoaXMuc2VsZWN0ZWRTZWN0aW9uWzBdLnF1ZXN0aW9ucy5sZW5ndGggPiAwID8gdGhpcy5zZWxlY3RlZFNlY3Rpb25bMF0ucXVlc3Rpb25zWzBdIDogXCJcIixcclxuICAgICAgICBcImFwcHJvdmVGaWx0ZXJcIjogdGhpcy5hcHByb3ZlRmlsdGVyXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50cmF4U2VydmljZS5nZXRjaGVja2xpc3Qob2JqKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuY2hlY2tsaXN0RGF0YSA9IHJlcz8uZGF0YS5jaGVja2xpc3RRdWVzdGlvbnM7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlID09PSAnQ2x1c3RlcnMnKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZShyZXM/LmRhdGE/LnN0b3Jlc0RldGFpbHMpXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3VzZXJMaXN0Jyk/LnNldFZhbHVlKHJlcz8uZGF0YT8uc3RvcmVzRGV0YWlscylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnZpZXdDaGVja2xpc3RzKFwiYWxsXCIsIFwiYWxsXCIpXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrbGlzdERhdGEgPSBbXTtcclxuICAgICAgICAgICAgdGhpcy52aWV3Q2hlY2tsaXN0c0RhdGEgPSBbXTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy52aWV3bG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnZpZXdub0RhdGEgPSB0cnVlO1xyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgb2JqID0ge1xyXG4gICAgICAgIFwiZnJvbURhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgICBcIkNoZWNrbGlzdFR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlLCAvLyBbXCJjdXN0b21cIiwgXCJBSVwiXVxyXG4gICAgICAgIFwiY2hlY2tsaXN0TmFtZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmNoZWNrbGlzdE5hbWUsXHJcbiAgICAgICAgXCJjaGVja2xpc3RJZFwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZCxcclxuICAgICAgICBcImZpbHRlcnR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlLFxyXG4gICAgICAgIFwic3RvcmVJZFwiOiBzdG9yZXMsXHJcbiAgICAgICAgXCJ1c2VyRW1haWxcIjogdXNlcnMsXHJcbiAgICAgICAgXCJhbnN3ZXJUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuYW5zd2VyVHlwZSwgLy9bXCJkZXNjcmlwdGl2ZVwiLFwieWVzL25vXCIsXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLFwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiLFwiaW1hZ2VcIixcInZpZGVvXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsXCJtdWx0aXBsZUltYWdlXCJdXHJcbiAgICAgICAgXCJ2aWV3RmxhZ1wiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnZpZXdGbGFnLC8vW3RydWUsIGZhbHNlXVxyXG4gICAgICAgIFwidmlld1JlZG9cIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS52aWV3UmVkbywgLy9bdHJ1ZSwgZmFsc2VdXHJcbiAgICAgICAgXCJmaWx0ZXJcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXIsXHJcbiAgICAgICAgXCJxdWVzdGlvbnNcIjogdGhpcy5zZWxlY3RlZFNlY3Rpb24ubGVuZ3RoID4gMCAmJiB0aGlzLnNlbGVjdGVkU2VjdGlvblswXS5xdWVzdGlvbnMubGVuZ3RoID4gMCA/IHRoaXMuc2VsZWN0ZWRTZWN0aW9uWzBdLnF1ZXN0aW9uc1swXSA6IFwiXCJcclxuXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50cmF4U2VydmljZS5nZXRRdWVzdGlvbnMob2JqKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuY2hlY2tsaXN0RGF0YSA9IHJlcz8uZGF0YS5jaGVja2xpc3RRdWVzdGlvbnM7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlID09PSAnQ2x1c3RlcnMnKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZShyZXM/LmRhdGE/LnN0b3Jlc0RldGFpbHMpXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3VzZXJMaXN0Jyk/LnNldFZhbHVlKHJlcz8uZGF0YT8uc3RvcmVzRGV0YWlscylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnZpZXdUYXNrTGlzdChcImFsbFwiLCBcImFsbFwiKVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja2xpc3REYXRhID0gW107XHJcbiAgICAgICAgICAgIHRoaXMudmlld0NoZWNrbGlzdHNEYXRhID0gW107XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy52aWV3bm9EYXRhID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuICBhcHBvdmVDaGVja2xpc3QoKSB7XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQXBwcm92YWxQb3B1cENvbXBvbmVudCwgeyBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ21kJywgfSk7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS50eXBlID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuY2hlY2tMaXN0TmFtZSA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tsaXN0TmFtZTtcclxuICAgIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgaWYgKHJlc3VsdCA9PSAnc3VibWl0Jykge1xyXG5cclxuICAgICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlID09PSAnQ2x1c3RlcnMnKSB7XHJcbiAgICAgICAgICBsZXQgc3RvcmVzID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zdG9yZUxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEuc3RvcmVJZClcclxuICAgICAgICAgIGlmIChzdG9yZXMubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChcIlBsZWFzZSBzZWxlY3QgYXRsZWFzdCBvbmUgc3RvcmVcIilcclxuICAgICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGxldCB1c2VyID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS51c2VyTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS51c2VyRW1haWwpXHJcbiAgICAgICAgICBpZiAodXNlci5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KFwiUGxlYXNlIHNlbGVjdCBhdGxlYXN0IG9uZSB1c2VyXCIpXHJcbiAgICAgICAgICAgIHJldHVyblxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG5cclxuICAgICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09ICdjaGVja2xpc3QnKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGlzdEFwcHJvdmUoKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLkFwcHJvdmVUYXNrKClcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBjaGVja2xpc3RBcHByb3ZlKCkge1xyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBsZXQgdXNlciA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudXNlckxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEudXNlckVtYWlsKVxyXG4gICAgbGV0IHBheWxvYWQgPSB7XHJcbiAgICAgIFwiY2xpZW50SWRcIjogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCxcclxuICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJ1c2VyRW1haWxcIjogdXNlcixcclxuICAgICAgXCJzb3VyY2VDaGVja0xpc3RfaWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgIFwiZmlsdGVydHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcnR5cGUsXHJcbiAgICB9XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmFwcHJvdmVjaGVja2xpc3QocGF5bG9hZCk/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmFwcHJvdmFsc3RhdHVzKClcclxuICAgICAgICAgIGlmICh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0Q2hlY2tsaXN0UUEoZmFsc2UpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRUYXNrUUEodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0U3VjY2Vzc1RvYXN0KGA8ZGl2PjxzcGFuIGNsYXNzPVwibWUtOFwiID4ke3Jlcy5tZXNzYWdlfTwvc3Bhbj48L2Rpdj5gKVxyXG4gICAgICAgIH1cclxuICAgICAgfSwgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KGVycj8uZXJyb3I/LmVycm9yKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIEFwcHJvdmVUYXNrKCkge1xyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBsZXQgdXNlciA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudXNlckxpc3QubWFwKChkYXRhOiBhbnkpID0+IGRhdGEudXNlckVtYWlsKVxyXG4gICAgbGV0IHBheWxvYWQgPSB7XHJcbiAgICAgIFwiZnJvbURhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgIFwic3RvcmVJZFwiOiBzdG9yZXMsXHJcbiAgICAgIFwidXNlckVtYWlsXCI6IHVzZXIsXHJcbiAgICAgIFwic291cmNlQ2hlY2tMaXN0X2lkXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkLFxyXG4gICAgICBcImNsaWVudElkXCI6IHRoaXMuaGVhZGVyRmlsdGVycy5jbGllbnQsXHJcbiAgICAgIFwiZmlsdGVydHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcnR5cGUsXHJcbiAgICB9XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmFwcHJvdmV0YXNrKHBheWxvYWQpPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0U3VjY2Vzc1RvYXN0KGA8ZGl2PjxzcGFuIGNsYXNzPVwibWUtOFwiID4ke3Jlcy5tZXNzYWdlfTwvc3Bhbj48L2Rpdj5gKVxyXG4gICAgICAgICAgdGhpcy5hcHByb3ZhbHN0YXR1cygpXHJcbiAgICAgICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0Jykge1xyXG4gICAgICAgICAgICB0aGlzLmdldENoZWNrbGlzdFFBKGZhbHNlKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0VGFza1FBKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChlcnI/LmVycm9yPy5lcnJvcilcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcblxyXG5cclxuICB9XHJcblxyXG4gIGdldENoZWNrbGlzdFFBKHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFNlY3Rpb24gPSBbXVxyXG4gICAgdGhpcy50ZW1wc2VsZWN0ZWRTZWN0aW9uID0gW11cclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLm5vRGF0YSA9IGZhbHNlXHJcbiAgICB0aGlzLnZpZXdsb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMudmlld25vRGF0YSA9IGZhbHNlO1xyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBsZXQgdXNlcnMgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnVzZXJMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnVzZXJFbWFpbClcclxuICAgIGxldCBvYmogPSB7XHJcbiAgICAgIFwiZnJvbURhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgIFwiQ2hlY2tsaXN0VHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmNoZWNrTGlzdFR5cGUsIC8vIFtcImN1c3RvbVwiLCBcIkFJXCJdXHJcbiAgICAgIFwiY2hlY2tsaXN0TmFtZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmNoZWNrbGlzdE5hbWUsXHJcbiAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgIFwiZmlsdGVydHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcnR5cGUsXHJcbiAgICAgIFwidXNlckVtYWlsXCI6IHVzZXJzLFxyXG4gICAgICBcInN0b3JlSWRcIjogc3RvcmVzLFxyXG4gICAgICBcImFuc3dlclR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5hbnN3ZXJUeXBlLCAvL1tcImRlc2NyaXB0aXZlXCIsXCJ5ZXMvbm9cIixcIm11bHRpcGxlY2hvaWNlc2luZ2xlXCIsXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsXCJpbWFnZVwiLFwidmlkZW9cIixcImRlc2NyaXB0aXZlSW1hZ2VcIixcIm11bHRpcGxlSW1hZ2VcIl1cclxuICAgICAgXCJ2aWV3RmxhZ1wiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnZpZXdGbGFnLCAvL1t0cnVlLCBmYWxzZV1cclxuICAgICAgXCJ2aWV3UmVkb1wiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnZpZXdSZWRvLCAvL1t0cnVlLCBmYWxzZV1cclxuICAgICAgXCJmaWx0ZXJcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXIsXHJcbiAgICAgIFwiYXBwcm92ZUZpbHRlclwiOiB0aGlzLmFwcHJvdmVGaWx0ZXIsXHJcbiAgICAgIFwicXVlc3Rpb25zXCI6IHRoaXMuc2VsZWN0ZWRTZWN0aW9uLmxlbmd0aCA+IDAgJiYgdGhpcy5zZWxlY3RlZFNlY3Rpb25bMF0ucXVlc3Rpb25zLmxlbmd0aCA+IDAgPyB0aGlzLnNlbGVjdGVkU2VjdGlvblswXS5xdWVzdGlvbnNbMF0gOiBcIlwiXHJcbiAgICB9XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldGNoZWNrbGlzdChvYmopPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5jaGVja2xpc3REYXRhID0gcmVzPy5kYXRhLmNoZWNrbGlzdFF1ZXN0aW9ucztcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICAgIGNvbnN0IHRhcmdldEZpZWxkID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlID09PSAnQ2x1c3RlcnMnID8gJ3N0b3JlTGlzdCcgOiAndXNlckxpc3QnO1xyXG4gICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQodGFyZ2V0RmllbGQpPy5zZXRWYWx1ZShyZXM/LmRhdGE/LnN0b3Jlc0RldGFpbHMpO1xyXG4gICAgICAgICAgdGhpcy52aWV3Q2hlY2tsaXN0cyhcImFsbFwiLCBcImFsbFwiKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGlzdERhdGEgPSBbXTtcclxuICAgICAgICAgIHRoaXMudmlld0NoZWNrbGlzdHNEYXRhID0gW107XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld25vRGF0YSA9IHRydWU7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgZ2V0dGFza1FBKHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFNlY3Rpb24gPSBbXVxyXG4gICAgdGhpcy50ZW1wc2VsZWN0ZWRTZWN0aW9uID0gW11cclxuXHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5ub0RhdGEgPSBmYWxzZVxyXG4gICAgdGhpcy52aWV3bG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnZpZXdub0RhdGEgPSBmYWxzZTtcclxuICAgIGxldCBzdG9yZXMgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnN0b3JlTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS5zdG9yZUlkKVxyXG4gICAgbGV0IHVzZXJzID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS51c2VyTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS51c2VyRW1haWwpXHJcbiAgICBsZXQgb2JqID0ge1xyXG4gICAgICBcImZyb21EYXRlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZnJvbURhdGUsXHJcbiAgICAgIFwidG9EYXRlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudG9EYXRlLFxyXG4gICAgICBcIkNoZWNrbGlzdFR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlLCAvLyBbXCJjdXN0b21cIiwgXCJBSVwiXVxyXG4gICAgICBcImNoZWNrbGlzdE5hbWVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja2xpc3ROYW1lLFxyXG4gICAgICBcImNoZWNrbGlzdElkXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkLFxyXG4gICAgICBcImZpbHRlcnR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlLFxyXG4gICAgICBcInVzZXJFbWFpbFwiOiB1c2VycyxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJhbnN3ZXJUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuYW5zd2VyVHlwZSwgLy9bXCJkZXNjcmlwdGl2ZVwiLFwieWVzL25vXCIsXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLFwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiLFwiaW1hZ2VcIixcInZpZGVvXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsXCJtdWx0aXBsZUltYWdlXCJdXHJcbiAgICAgIFwidmlld0ZsYWdcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS52aWV3RmxhZywgLy9bdHJ1ZSwgZmFsc2VdXHJcbiAgICAgIFwidmlld1JlZG9cIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS52aWV3UmVkbywgLy9bdHJ1ZSwgZmFsc2VdXHJcbiAgICAgIFwiZmlsdGVyXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVyLFxyXG4gICAgICBcImFwcHJvdmVGaWx0ZXJcIjogdGhpcy5hcHByb3ZlRmlsdGVyLFxyXG4gICAgICBcInF1ZXN0aW9uc1wiOiB0aGlzLnNlbGVjdGVkU2VjdGlvbi5sZW5ndGggPiAwICYmIHRoaXMuc2VsZWN0ZWRTZWN0aW9uWzBdLnF1ZXN0aW9ucy5sZW5ndGggPiAwID8gdGhpcy5zZWxlY3RlZFNlY3Rpb25bMF0ucXVlc3Rpb25zWzBdIDogXCJcIlxyXG4gICAgfVxyXG4gICAgdGhpcy50cmF4U2VydmljZS5nZXRRdWVzdGlvbnMob2JqKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0RGF0YSA9IHJlcz8uZGF0YS5jaGVja2xpc3RRdWVzdGlvbnM7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICAgICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlID09PSAnQ2x1c3RlcnMnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZUxpc3QnKT8uc2V0VmFsdWUocmVzPy5kYXRhPy5zdG9yZXNEZXRhaWxzKVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3VzZXJMaXN0Jyk/LnNldFZhbHVlKHJlcz8uZGF0YT8uc3RvcmVzRGV0YWlscylcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudmlld1Rhc2tMaXN0KFwiYWxsXCIsIFwiYWxsXCIpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0RGF0YSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy52aWV3Q2hlY2tsaXN0c0RhdGEgPSBbXTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy52aWV3bG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy52aWV3bm9EYXRhID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIHZpZXdUYXNrTGlzdChzZWN0aW9uTmFtZTogYW55LCBxdWVzdGlvbk5hbWU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEV4cG9ydCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWN0aW9uTmFtZSA9IHNlY3Rpb25OYW1lO1xyXG4gICAgdGhpcy5xdWVzdGlvbk5hbWUgPSBxdWVzdGlvbk5hbWVcclxuXHJcbiAgICB0aGlzLmxpbWl0ID0gMTtcclxuICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzFdO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTZWN0aW9uLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5saW1pdCA9IDEwLFxyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzEwXTtcclxuICAgIH1cclxuICAgIHRoaXMudmlld2xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy52aWV3bm9EYXRhID0gZmFsc2VcclxuICAgIGxldCBzdG9yZXMgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnN0b3JlTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS5zdG9yZUlkKVxyXG4gICAgbGV0IHVzZXJzID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS51c2VyTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS51c2VyRW1haWwpXHJcbiAgICB0aGlzLnZpZXdDaGVja2xpc3Rzb3B0aW9ucyA9IHtcclxuICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgXCJDaGVja2xpc3RUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSwgLy8gW1wiY2hlY2tsaXN0XCIsIFwidGFza1wiXVxyXG4gICAgICBcImNoZWNrbGlzdE5hbWVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja2xpc3ROYW1lLFxyXG4gICAgICBcImZpbHRlcnR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlLFxyXG4gICAgICBcInVzZXJFbWFpbFwiOiB1c2VycyxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJhbnN3ZXJUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuYW5zd2VyVHlwZSwgLy9bXCJkZXNjcmlwdGl2ZVwiLFwieWVzL25vXCIsXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLFwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiLFwiaW1hZ2VcIixcInZpZGVvXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsXCJtdWx0aXBsZUltYWdlXCJdICAgICAgXHJcbiAgICAgIFwib2Zmc2V0XCI6ICh0aGlzLm9mZnNldCAtIDEpLFxyXG4gICAgICBcImxpbWl0XCI6IHRoaXMubGltaXQsXHJcbiAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgIFwic291cmNlQ2hlY2tMaXN0X2lkXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkLFxyXG4gICAgICBcInZpZXdGbGFnXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudmlld0ZsYWcsXHJcbiAgICAgIFwidmlld1JlZG9cIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS52aWV3UmVkbywgLy9bdHJ1ZSwgZmFsc2VdXHJcbiAgICAgIFwicXVlc3Rpb25zXCI6IHRoaXMuc2VsZWN0ZWRTZWN0aW9uLFxyXG4gICAgICBcImZpbHRlclwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcixcclxuICAgICAgXCJhcHByb3ZlRmlsdGVyXCI6IHRoaXMuYXBwcm92ZUZpbHRlcixcclxuICAgIH1cclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0QW5zd2Vycyh0aGlzLnZpZXdDaGVja2xpc3Rzb3B0aW9ucyk/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmFwcHJvdmFsc3RhdHVzKClcclxuICAgICAgICAgIHRoaXMudmlld0NoZWNrbGlzdHNEYXRhID0gcmVzLmRhdGE7XHJcbiAgICAgICAgICBpZiAodGhpcy5zaG93c2luZ2xlKSB7XHJcbiAgICAgICAgICAgIGxldCBsb29waW5nRGF0YSA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVydHlwZSA9PT0gJ0NsdXN0ZXJzJyA/IHRoaXMuc2VsZWN0ZWRTdG9yZXMgOiB0aGlzLnNlbGVjdGVkVXNlcnNcclxuICAgICAgICAgICAgdGhpcy52aWV3Q2hlY2tsaXN0c0RhdGEuY2hlY2tsaXN0QW5zd2Vycy5tYXAoKGRldGFpbHM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChsb29waW5nRGF0YS5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGUudXNlckVtYWlsID09PSBkZXRhaWxzLnN0b3JlUHJvZmlsZT8udXNlckVtYWlsKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBkZXRhaWxzLnF1ZXN0aW9uQW5zd2VyWzBdLnF1ZXN0aW9uc1swXS5jaGVja2VkID0gdHJ1ZVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudG90YWxDb3VudCA9IHRoaXMudmlld0NoZWNrbGlzdHNEYXRhLnRvdGFsX2NvdW50XHJcbiAgICAgICAgICB0aGlzLnZpZXdsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnZpZXdub0RhdGEgPSBmYWxzZVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnZpZXdDaGVja2xpc3RzRGF0YSA9IFtdXHJcbiAgICAgICAgICB0aGlzLnZpZXdsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnZpZXdub0RhdGEgPSB0cnVlXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHZpZXdDaGVja2xpc3RzKHNlY3Rpb25OYW1lOiBhbnksIHF1ZXN0aW9uTmFtZTogYW55KSB7XHJcbiAgICAvLyB0aGlzLnNlbGVjdGVkU2VjdGlvbiA9IFtdICAgIFxyXG4gICAgdGhpcy5zZWxlY3RlZEV4cG9ydCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWN0aW9uTmFtZSA9IHNlY3Rpb25OYW1lO1xyXG4gICAgdGhpcy5xdWVzdGlvbk5hbWUgPSBxdWVzdGlvbk5hbWVcclxuXHJcbiAgICB0aGlzLmxpbWl0ID0gMTtcclxuICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzFdO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTZWN0aW9uLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5saW1pdCA9IDEwLFxyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzEwXTtcclxuICAgIH1cclxuICAgIHRoaXMudmlld2xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy52aWV3bm9EYXRhID0gZmFsc2VcclxuICAgIGxldCBzdG9yZXMgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnN0b3JlTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS5zdG9yZUlkKVxyXG4gICAgbGV0IHVzZXJzID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS51c2VyTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS51c2VyRW1haWwpXHJcbiAgICB0aGlzLnZpZXdDaGVja2xpc3Rzb3B0aW9ucyA9IHtcclxuICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgXCJDaGVja2xpc3RUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tMaXN0VHlwZSwgLy8gW1wiY2hlY2tsaXN0XCIsIFwidGFza1wiXVxyXG4gICAgICBcImNoZWNrbGlzdE5hbWVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja2xpc3ROYW1lLFxyXG4gICAgICBcImZpbHRlcnR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlLFxyXG4gICAgICBcInN0b3JlSWRcIjogc3RvcmVzLFxyXG4gICAgICBcInVzZXJFbWFpbFwiOiB1c2VycyxcclxuICAgICAgXCJhbnN3ZXJUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuYW5zd2VyVHlwZSwgLy9bXCJkZXNjcmlwdGl2ZVwiLFwieWVzL25vXCIsXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLFwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiLFwiaW1hZ2VcIixcInZpZGVvXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsXCJtdWx0aXBsZUltYWdlXCJdICAgICAgXHJcbiAgICAgIFwib2Zmc2V0XCI6ICh0aGlzLm9mZnNldCAtIDEpLFxyXG4gICAgICBcImxpbWl0XCI6IHRoaXMubGltaXQsXHJcbiAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgIFwic291cmNlQ2hlY2tMaXN0X2lkXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkLFxyXG4gICAgICBcInZpZXdGbGFnXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudmlld0ZsYWcsXHJcbiAgICAgIFwidmlld1JlZG9cIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS52aWV3UmVkbywvL1t0cnVlLCBmYWxzZV1cclxuICAgICAgXCJxdWVzdGlvbnNcIjogdGhpcy5zZWxlY3RlZFNlY3Rpb24sXHJcbiAgICAgIFwiZmlsdGVyXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVyLFxyXG4gICAgICBcImFwcHJvdmVGaWx0ZXJcIjogdGhpcy5hcHByb3ZlRmlsdGVyLFxyXG4gICAgfVxyXG4gICAgdGhpcy50cmF4U2VydmljZS52aWV3Q2hlY2tsaXN0cyh0aGlzLnZpZXdDaGVja2xpc3Rzb3B0aW9ucyk/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmFwcHJvdmFsc3RhdHVzKClcclxuICAgICAgICAgIHRoaXMudmlld0NoZWNrbGlzdHNEYXRhID0gcmVzLmRhdGE7XHJcbiAgICAgICAgICBpZiAodGhpcy5zaG93c2luZ2xlKSB7XHJcbiAgICAgICAgICAgIGxldCBsb29waW5nRGF0YSA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVydHlwZSA9PT0gJ0NsdXN0ZXJzJyA/IHRoaXMuc2VsZWN0ZWRTdG9yZXMgOiB0aGlzLnNlbGVjdGVkVXNlcnNcclxuICAgICAgICAgICAgdGhpcy52aWV3Q2hlY2tsaXN0c0RhdGEuY2hlY2tsaXN0QW5zd2Vycy5tYXAoKGRldGFpbHM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChsb29waW5nRGF0YS5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGUudXNlckVtYWlsID09PSBkZXRhaWxzLnN0b3JlUHJvZmlsZT8udXNlckVtYWlsKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBkZXRhaWxzLnF1ZXN0aW9uQW5zd2VyWzBdLnF1ZXN0aW9uc1swXS5jaGVja2VkID0gdHJ1ZVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudG90YWxDb3VudCA9IHRoaXMudmlld0NoZWNrbGlzdHNEYXRhLnRvdGFsX2NvdW50XHJcbiAgICAgICAgICB0aGlzLnZpZXdsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnZpZXdub0RhdGEgPSBmYWxzZVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnZpZXdDaGVja2xpc3RzRGF0YSA9IFtdXHJcbiAgICAgICAgICB0aGlzLnZpZXdsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnZpZXdub0RhdGEgPSB0cnVlXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuICB0YXNrQ3JlYXRlKCkgeyB9XHJcblxyXG4gIHNob3dzaWRlbmF2OiBib29sZWFuID0gdHJ1ZTtcclxuICBzaWRlbmF2KCkge1xyXG4gICAgdGhpcy5zaG93c2lkZW5hdiA9ICF0aGlzLnNob3dzaWRlbmF2O1xyXG4gIH1cclxuXHJcbiAgb25QYWdlQ2hhbmdlKHBhZ2U6IG51bWJlcikge1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IHBhZ2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2hlY2tBSWNoZWNrbGlzdCgpIHtcclxuICAgIGlmICh0aGlzLmNvbWJpbmVkQ2hlY2tsaXN0LmluY2x1ZGVzKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIG9uUGFnZUNoYW5nZXZpZXcocGFnZU9mZnNldDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm9mZnNldCA9IHBhZ2VPZmZzZXQ7XHJcbiAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQgPT09ICdzdG9yZW9wZW5hbmRjbG9zZScpIHtcclxuICAgICAgdGhpcy5zdG9yZU9wZW5jbG9zZXZpZXcoKVxyXG4gICAgfSBpZiAodGhpcy5ib3hpbWFnZUNoZWNrbGlzdC5pbmNsdWRlcyh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZCkpIHtcclxuICAgICAgdGhpcy5xdWV1ZWFsZXJ0dmlldygpXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW1hZ2VDaGVja2xpc3QuaW5jbHVkZXModGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQ7XHJcbiAgICAgIHRoaXMuZ2V0bW9iaWxlVXNhZ2VEYXRhdmlldygpXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlkZW9DaGVja2xpc3QuaW5jbHVkZXModGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQ7XHJcbiAgICAgIHRoaXMuZ2V0Y3VzdG9tZXJ1bmF0dGVuZGVkdmlldygpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0Jykge1xyXG4gICAgICAgIHRoaXMudmlld0NoZWNrbGlzdHMoJycsICcnKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnZpZXdUYXNrTGlzdChcImFsbFwiLCBcImFsbFwiKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDMwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIG9uUGFnZVNpemVDaGFuZ2UocGFnZVNpemU6IG51bWJlcikge1xyXG4gICAgdGhpcy5saW1pdCA9IHBhZ2VTaXplO1xyXG4gICAgdGhpcy5vZmZzZXQgPSAxO1xyXG4gICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkID09PSAnc3RvcmVvcGVuYW5kY2xvc2UnKSB7XHJcbiAgICAgIHRoaXMuc3RvcmVPcGVuY2xvc2V2aWV3KClcclxuICAgIH0gZWxzZSBpZiAodGhpcy5ib3hpbWFnZUNoZWNrbGlzdC5pbmNsdWRlcyh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZCkpIHtcclxuICAgICAgdGhpcy5xdWV1ZWFsZXJ0dmlldygpXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW1hZ2VDaGVja2xpc3QuaW5jbHVkZXModGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQpKSB7XHJcbiAgICAgIHRoaXMuZ2V0bW9iaWxlVXNhZ2VEYXRhdmlldygpXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlkZW9DaGVja2xpc3QuaW5jbHVkZXModGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQpKSB7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJ1bmF0dGVuZGVkbGlzdChmYWxzZSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnKSB7XHJcbiAgICAgICAgdGhpcy52aWV3Q2hlY2tsaXN0cygnJywgJycpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudmlld1Rhc2tMaXN0KFwiYWxsXCIsIFwiYWxsXCIpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuZXhwb3J0U2hvdyA9IGZhbHNlO1xyXG4gIH1cclxuICBleHBvcnRTaG93ID0gZmFsc2U7XHJcbiAgZXhwb3J0TGFiZWw6IHN0cmluZyA9ICdFeHBvcnQnO1xyXG4gIGV4cG9ydERldChldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5leHBvcnRTaG93ID0gIXRoaXMuZXhwb3J0U2hvdztcclxuICB9XHJcbiAgcXVlc3Rpb25zY291bnQoZGF0YTogYW55KSB7XHJcbiAgICBsZXQgY291bnQgPSAwXHJcbiAgICBkYXRhLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICBjb3VudCA9IGNvdW50ICsgZWxlbWVudC5xdWVzdGlvbnMubGVuZ3RoXHJcblxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gY291bnQ7XHJcbiAgfVxyXG4gIHNldEV4cG9ydEFzUFBUKHR5cGU6IGFueSwgZmlsZVR5cGU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5leHBvcnRMYWJlbCA9IHR5cGU7ICAvLyBVcGRhdGUgdGhlIGxhYmVsIHRleHRcclxuICAgIHRoaXMuZXhwb3J0U2hvdyA9IGZhbHNlOyAgLy8gQ2xvc2UgdGhlIGV4cG9ydCBtZW51IGFmdGVyIHNlbGVjdGlvblxyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBsZXQgdXNlcnMgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnVzZXJMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnVzZXJFbWFpbClcclxuXHJcbiAgICBpZiAoZmlsZVR5cGUgPT09ICdwcHQnKSB7XHJcbiAgICAgIGxldCBzdGFydCA9IGRheWpzKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZnJvbURhdGUpO1xyXG4gICAgICBsZXQgZW5kID0gZGF5anModGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUpO1xyXG4gICAgICBjb25zdCBkaWZmZXJlbmNlID0gZW5kLmRpZmYoc3RhcnQsICdkYXlzJyk7XHJcblxyXG4gICAgICBpZiAoZGlmZmVyZW5jZSA9PT0gMiAmJiB0aGlzLnF1ZXN0aW9uc2NvdW50KHRoaXMuc2VsZWN0ZWRTZWN0aW9uKSA+IDEpIHtcclxuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KGBQbGVhc2Ugc2VsZWN0IG1heGltdW0gb2YgMSBxdWVzdGlvbiBvbmx5YClcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG4gICAgICBpZiAoZGlmZmVyZW5jZSA9PT0gMSAmJiB0aGlzLnF1ZXN0aW9uc2NvdW50KHRoaXMuc2VsZWN0ZWRTZWN0aW9uKSA+IDMpIHtcclxuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KGBQbGVhc2Ugc2VsZWN0IG1heGltdW0gb2YgMyBxdWVzdGlvbiBvbmx5YClcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG4gICAgICBpZiAoZGlmZmVyZW5jZSA9PT0gMCAmJiB0aGlzLnF1ZXN0aW9uc2NvdW50KHRoaXMuc2VsZWN0ZWRTZWN0aW9uKSA+IDMpIHtcclxuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KGBQbGVhc2Ugc2VsZWN0IG1heGltdW0gb2YgMyBxdWVzdGlvbiBvbmx5YClcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmV4cG9ydExhYmVsID0gJ0V4cG9ydCdcclxuICAgIH1cclxuXHJcbiAgICBsZXQgcGF5bG9hZCA9IHtcclxuICAgICAgXCJkb3dubG9hZEluc2VydEZyb21cIjogXCJnYWxsZXJ5XCIsXHJcbiAgICAgIFwiZnJvbURhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgIFwiY2hlY2tMaXN0VHlwZVwiOiB0aGlzLnNlbGVjdCxcclxuICAgICAgXCJjaGVja2xpc3RJZFwiOiBbXSxcclxuICAgICAgXCJzb3VyY2VDaGVja0xpc3RfaWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgIFwiY2hlY2tsaXN0TmFtZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmNoZWNrbGlzdE5hbWUsXHJcbiAgICAgIFwiYW5zd2VyVHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmFuc3dlclR5cGUsXHJcbiAgICAgIFwiZmlsZVR5cGVcIjogZmlsZVR5cGUsXHJcbiAgICAgIFwic3RvcmVJZHNcIjogc3RvcmVzLFxyXG4gICAgICBcInVzZXJFbWFpbExpc3RcIjogdXNlcnMsXHJcbiAgICAgIFwiY2xpZW50SWRcIjogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCxcclxuICAgICAgXCJxdWVzdGlvbnNcIjogdGhpcy5zZWxlY3RlZFNlY3Rpb24sXHJcbiAgICAgIFwicHJldmlld1R5cGVcIjogdGhpcy5wcmV2aWV3VHlwZSxcclxuICAgICAgXCJ2aWV3RmxhZ1wiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnZpZXdGbGFnLFxyXG4gICAgICBcInZpZXdSZWRvXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudmlld1JlZG8sIC8vW3RydWUsIGZhbHNlXVxyXG4gICAgICBcImluc2VydFR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlLFxyXG4gICAgICBcImZpbHRlclwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcixcclxuICAgICAgXCJhcHByb3ZlRmlsdGVyXCI6IHRoaXMuYXBwcm92ZUZpbHRlcixcclxuICAgICAgXCJmaWx0ZXJ0eXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVydHlwZSxcclxuICAgICAgXCJhaUZpbHRlclwiOiB0aGlzLmNhdGVnb3J5IHx8ICcnLFxyXG4gICAgfVxyXG4gICAgbGV0IGNsaWVudGluZm8gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2xpZW50LWRldGFpbHNcIikgfHwgXCJcIilcclxuICAgIGxldCB1c2VyaW5mbyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c2VyLWluZm9cIikgfHwgXCJcIilcclxuICAgIGlmICh0aGlzLnNlbGVjdCA9PT0gJ2N1c3RvbScgfHwgdGhpcy5zZWxlY3QgPT09ICd0YXNrJykge1xyXG4gICAgICBpZiAoKGNsaWVudGluZm8/LnRyYXhEYXRlUmFuZ2UgPT09IDcgfHwgdXNlcmluZm8/LnRyYXhEYXRlUmFuZ2UgPT09IDcpICYmIHR5cGUgPT09ICdFeHBvcnQgYXMgQ1NWJyB8fCB0eXBlID09PSAnRXhwb3J0IGFzIFBQVCcgfHwgdHlwZSA9PT0gJ0V4cG9ydCBhcyBaSVAnKSB7XHJcbiAgICAgICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEV4cG9ydEdhbGxlcnlDb21wb25lbnQsIHtcclxuICAgICAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICAgICAgc2l6ZTogXCJsZ1wiLFxyXG4gICAgICAgICAgc2Nyb2xsYWJsZTogdHJ1ZSxcclxuICAgICAgICAgIGJhY2tkcm9wOiAnc3RhdGljJyxcclxuICAgICAgICAgIHdpbmRvd0NsYXNzOiBcImN1c3RvbS1oZWlnaHQtbW9kYWxcIiAgLy8gPC0tIEFkZCBhIGN1c3RvbSBjbGFzcyBoZXJlICBcclxuICAgICAgICB9KTtcclxuICAgICAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS50eXBlID0gdHlwZTtcclxuICAgICAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5wYXlsb2FkID0gcGF5bG9hZDtcclxuXHJcbiAgICAgICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0ID09PSBcInN1Y2Nlc3NcIikge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldFN1Y2Nlc3NUb2FzdChgPGRpdj48c3BhbiBjbGFzcz1cIm1lLThcIiA+RG93bmxvYWRpbmcgeW91ciByZXBvcnRzPC9zcGFuPjxhIGhyZWY9XCJub3RpZmljYXRpb25zL2FsZXJ0cz90YWI9ZG93bmxvYWRcIiBzdHlsZT1cImNvbG9yOiM5OWMzZmY7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IGN1cnNvcjpwb2ludGVyXCIgPlZpZXc8L2E+PC9kaXY+YClcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT09IFwiZXJyb3JcIikge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldEVycm9yVG9hc3QoYFNvbWV0aGluZyB3ZW50IHdyb25nICFgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZXhwb3J0TGFiZWwgPSAnRXhwb3J0J1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy50cmF4U2VydmljZS5yZXBvcnRUYWJsZUV4cG9ydChwYXlsb2FkKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldFN1Y2Nlc3NUb2FzdChgPGRpdj48c3BhbiBjbGFzcz1cIm1lLThcIiA+RG93bmxvYWRpbmcgeW91ciByZXBvcnRzPC9zcGFuPjxhIGhyZWY9XCJub3RpZmljYXRpb25zL2FsZXJ0cz90YWI9ZG93bmxvYWRcIiBzdHlsZT1cImNvbG9yOiM5OWMzZmY7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IGN1cnNvcjpwb2ludGVyXCIgPlZpZXc8L2E+PC9kaXY+YClcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KGBTb21ldGhpbmcgd2VudCB3cm9uZyAhYClcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmV4cG9ydExhYmVsID0gJ0V4cG9ydCdcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ID09PSAnc2NydW0nIHx8IHRoaXMuc2VsZWN0ID09PSAnY2xlYW5pbmcnIHx8IHRoaXMuc2VsZWN0ID09PSAnc3RvcmVvcGVuYW5kY2xvc2UnIHx8IHRoaXMuc2VsZWN0ID09PSAnaW52ZW50b3J5Y291bnQnIHx8IHRoaXMuc2VsZWN0ID09PSAnY2Fyc2F0dGVuZGVkJyB8fCB0aGlzLnNlbGVjdCA9PT0gJ251bWJlcnBsYXRlaW5mbycgfHwgdGhpcy5zZWxlY3QgPT09ICd2ZWhpY2xlX2NoZWNrX2luJyB8fCB0aGlzLnNlbGVjdCA9PT0gJ291dHNpZGVidXNpbmVzc2hvdXJzcXVldWV0cmFja2luZycpIHtcclxuXHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdCAhPSAnc3RvcmVvcGVuYW5kY2xvc2UnKSB7XHJcbiAgICAgICAgdGhpcy5wcmV2aWV3VHlwZSA9ICd2aWRlbydcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy50cmF4U2VydmljZS5haWNoZWNrbGlzdEV4cG9ydChwYXlsb2FkKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldFN1Y2Nlc3NUb2FzdChgPGRpdj48c3BhbiBjbGFzcz1cIm1lLThcIiA+RG93bmxvYWRpbmcgeW91ciByZXBvcnRzPC9zcGFuPjxhIGhyZWY9XCJub3RpZmljYXRpb25zL2FsZXJ0cz90YWI9ZG93bmxvYWRcIiBzdHlsZT1cImNvbG9yOiM5OWMzZmY7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IGN1cnNvcjpwb2ludGVyXCIgPlZpZXc8L2E+PC9kaXY+YClcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldEVycm9yVG9hc3QoYFNvbWV0aGluZyB3ZW50IHdyb25nICFgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5leHBvcnRMYWJlbCA9ICdFeHBvcnQnXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdHlwZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnJlbW92ZVF1ZXJ5UGFyYW1zKClcclxuICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd0eXBlJyk/LnNldFZhbHVlKGV2ZW50KVxyXG4gICAgdGhpcy5zaG93c2luZ2xlID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dtdWx0aSA9IHRydWU7XHJcbiAgICB0aGlzLmFuc3dlckZpbHRlciA9IFtdXHJcbiAgICBpZiAoZXZlbnQgPT09ICd0YXNrJykge1xyXG4gICAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldFN0b3Jlc2xpc3QoeyBjbGllbnRJZDogdGhpcy5oZWFkZXJGaWx0ZXJzLmNsaWVudCwgY2x1c3RlcnM6IHRoaXMuZ3JvdXBzLCBjaXR5OiBbXSB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSByZXMuZGF0YS5zdG9yZXNEYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlcyA9IHJlcy5kYXRhLnN0b3Jlc0RhdGFcclxuICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZSh0aGlzLnN0b3JlTGlzdClcclxuICAgICAgICAgICAgdGhpcy5nZXRBbGxUYXNrcyhmYWxzZSlcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2NoZWNrTGlzdFR5cGUnKT8uc2V0VmFsdWUoJ2N1c3RvbScpXHJcbiAgICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0U3RvcmVzbGlzdCh7IGNsaWVudElkOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50LCBjbHVzdGVyczogdGhpcy5ncm91cHMsIGNpdHk6IFtdIH0pLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IHJlcy5kYXRhLnN0b3Jlc0RhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVzID0gcmVzLmRhdGEuc3RvcmVzRGF0YVxyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc3RvcmVMaXN0Jyk/LnNldFZhbHVlKHRoaXMuc3RvcmVMaXN0KVxyXG4gICAgICAgICAgICB0aGlzLmdldEFsbENoZWNrTGlzdHModHJ1ZSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIGdldEFsbFRhc2tzKHR5cGU6IGFueSkge1xyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuc3RvcmVzPy5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS5zdG9yZUlkKVxyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgZnJvbURhdGU6IHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdmcm9tRGF0ZScpPy52YWx1ZSxcclxuICAgICAgdG9EYXRlOiB0aGlzLmdhbGxlcnlGb3JtLmdldCgndG9EYXRlJyk/LnZhbHVlLFxyXG4gICAgICBzdG9yZUlkOiBzdG9yZXMsXHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckZpbHRlcnM/LmNsaWVudCxcclxuICAgICAgc29ydENvbHVtbk5hbWU6IFwiY2hlY2tMaXN0TmFtZVwiLFxyXG4gICAgICBzb3J0Qnk6IDFcclxuICAgIH1cclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0VGFza0xpc3QocGF5bG9hZCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0cyA9IHJlcy5kYXRhLmNoZWNrbGlzdERhdGFcclxuXHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMucXVlcnlQYXJhbXMuc291cmNlQ2hlY2tMaXN0X2lkICYmIHRoaXMucXVlcnlQYXJhbXMuY2hlY2tsaXN0VHlwZSA9PSAndGFzaycpIHtcclxuICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc291cmNlQ2hlY2tMaXN0X2lkJyk/LnNldFZhbHVlKHRoaXMucXVlcnlQYXJhbXMuc291cmNlQ2hlY2tMaXN0X2lkKVxyXG4gICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd0eXBlJyk/LnNldFZhbHVlKCd0YXNrJylcclxuICAgICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnY2hlY2tMaXN0VHlwZScpPy5zZXRWYWx1ZSh0aGlzLnF1ZXJ5UGFyYW1zLmNoZWNrbGlzdFR5cGUpXHJcbiAgICAgICAgICAgICAgbGV0IGdldGNoZWNrbGlzdCA9IHRoaXMuY2hlY2tsaXN0cy5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGUuc291cmNlQ2hlY2tMaXN0X2lkID09PSB0aGlzLnF1ZXJ5UGFyYW1zLnNvdXJjZUNoZWNrTGlzdF9pZClcclxuXHJcbiAgICAgICAgICAgICAgaWYgKGdldGNoZWNrbGlzdCAmJiBnZXRjaGVja2xpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2NoZWNrbGlzdE5hbWUnKT8uc2V0VmFsdWUoZ2V0Y2hlY2tsaXN0WzBdPy5jaGVja0xpc3ROYW1lKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2NoZWNrTGlzdERlc2NyaXB0aW9uJyk/LnNldFZhbHVlKGdldGNoZWNrbGlzdFswXT8uY2hlY2tMaXN0RGVzY3JpcHRpb24pXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrbGlzdE5hbWUgPSBnZXRjaGVja2xpc3RbMF0/LmNoZWNrTGlzdE5hbWVcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgLy8gdGhpcy5yZW1vdmVRdWVyeVBhcmFtcygpXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2NoZWNrbGlzdE5hbWUnKT8uc2V0VmFsdWUodGhpcy5jaGVja2xpc3RzWzBdPy5jaGVja0xpc3ROYW1lKVxyXG4gICAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzb3VyY2VDaGVja0xpc3RfaWQnKT8uc2V0VmFsdWUodGhpcy5jaGVja2xpc3RzWzBdPy5zb3VyY2VDaGVja0xpc3RfaWQpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHR5cGUpIHtcclxuICAgICAgICAgICAgICB0aGlzLmdldHRhc2tRQShmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sIDApXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0cyA9IFtdXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0VGFza1FBKHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFNlY3Rpb24gPSBbXVxyXG4gICAgdGhpcy50ZW1wc2VsZWN0ZWRTZWN0aW9uID0gW11cclxuXHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5ub0RhdGEgPSBmYWxzZVxyXG4gICAgdGhpcy52aWV3bG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnZpZXdub0RhdGEgPSBmYWxzZTtcclxuICAgIGxldCBzdG9yZXMgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnN0b3JlTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS5zdG9yZUlkKVxyXG4gICAgbGV0IHVzZXIgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnVzZXJMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnVzZXJFbWFpbClcclxuICAgIGxldCBvYmogPSB7XHJcbiAgICAgIFwiZnJvbURhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgIFwiQ2hlY2tsaXN0VHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGUsIC8vIFtcImN1c3RvbVwiLCBcIkFJXCJdXHJcbiAgICAgIFwiY2hlY2tsaXN0TmFtZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmNoZWNrbGlzdE5hbWUsXHJcbiAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgIFwic3RvcmVJZFwiOiBzdG9yZXMsXHJcbiAgICAgIFwidXNlckVtYWlsXCI6IHVzZXIsXHJcbiAgICAgIFwiZmlsdGVydHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcnR5cGUsXHJcbiAgICAgIFwiYW5zd2VyVHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmFuc3dlclR5cGUsIC8vW1wiZGVzY3JpcHRpdmVcIixcInllcy9ub1wiLFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIixcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIixcImltYWdlXCIsXCJ2aWRlb1wiLFwiZGVzY3JpcHRpdmVJbWFnZVwiLFwibXVsdGlwbGVJbWFnZVwiXVxyXG4gICAgICBcInZpZXdGbGFnXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudmlld0ZsYWcsIC8vW3RydWUsIGZhbHNlXVxyXG4gICAgICBcInZpZXdSZWRvXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudmlld1JlZG8sIC8vW3RydWUsIGZhbHNlXVxyXG4gICAgICBcImZpbHRlclwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcixcclxuICAgICAgXCJhcHByb3ZlRmlsdGVyXCI6IHRoaXMuYXBwcm92ZUZpbHRlcixcclxuICAgICAgXCJxdWVzdGlvbnNcIjogdGhpcy5zZWxlY3RlZFNlY3Rpb24ubGVuZ3RoID4gMCAmJiB0aGlzLnNlbGVjdGVkU2VjdGlvblswXS5xdWVzdGlvbnMubGVuZ3RoID4gMCA/IHRoaXMuc2VsZWN0ZWRTZWN0aW9uWzBdLnF1ZXN0aW9uc1swXSA6IFwiXCJcclxuICAgIH1cclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0UXVlc3Rpb25zKG9iaik/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGlzdERhdGEgPSByZXM/LmRhdGEuY2hlY2tsaXN0UXVlc3Rpb25zO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgICAgICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVydHlwZSA9PT0gJ0NsdXN0ZXJzJykge1xyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc3RvcmVMaXN0Jyk/LnNldFZhbHVlKHJlcz8uZGF0YT8uc3RvcmVzRGV0YWlscylcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCd1c2VyTGlzdCcpPy5zZXRWYWx1ZShyZXM/LmRhdGE/LnN0b3Jlc0RldGFpbHMpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnZpZXdUYXNrTGlzdChcImFsbFwiLCBcImFsbFwiKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGlzdERhdGEgPSBbXTtcclxuICAgICAgICAgIHRoaXMudmlld0NoZWNrbGlzdHNEYXRhID0gW107XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld25vRGF0YSA9IHRydWU7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgdmlld1Rhc2tzKHNlY3Rpb25OYW1lOiBhbnksIHF1ZXN0aW9uTmFtZTogYW55KSB7XHJcbiAgICAvLyB0aGlzLnNlbGVjdGVkU2VjdGlvbiA9IFtdICAgIFxyXG4gICAgdGhpcy5zZWxlY3RlZEV4cG9ydCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWN0aW9uTmFtZSA9IHNlY3Rpb25OYW1lO1xyXG4gICAgdGhpcy5xdWVzdGlvbk5hbWUgPSBxdWVzdGlvbk5hbWVcclxuXHJcbiAgICB0aGlzLmxpbWl0ID0gMTtcclxuICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzFdO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTZWN0aW9uLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5saW1pdCA9IDEwLFxyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzEwXTtcclxuICAgIH1cclxuICAgIHRoaXMudmlld2xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy52aWV3bm9EYXRhID0gZmFsc2VcclxuICAgIGxldCBzdG9yZXMgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnN0b3JlTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS5zdG9yZUlkKVxyXG4gICAgdGhpcy52aWV3Q2hlY2tsaXN0c29wdGlvbnMgPSB7XHJcbiAgICAgIFwiZnJvbURhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5mcm9tRGF0ZSxcclxuICAgICAgXCJ0b0RhdGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50b0RhdGUsXHJcbiAgICAgIFwiQ2hlY2tsaXN0VHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmNoZWNrTGlzdFR5cGUsIC8vIFtcImNoZWNrbGlzdFwiLCBcInRhc2tcIl1cclxuICAgICAgXCJjaGVja2xpc3ROYW1lXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tsaXN0TmFtZSxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJhbnN3ZXJUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuYW5zd2VyVHlwZSwgLy9bXCJkZXNjcmlwdGl2ZVwiLFwieWVzL25vXCIsXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLFwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiLFwiaW1hZ2VcIixcInZpZGVvXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsXCJtdWx0aXBsZUltYWdlXCJdICAgICAgXHJcbiAgICAgIFwib2Zmc2V0XCI6ICh0aGlzLm9mZnNldCAtIDEpLFxyXG4gICAgICBcImxpbWl0XCI6IHRoaXMubGltaXQsXHJcbiAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgIFwic291cmNlQ2hlY2tMaXN0X2lkXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkLFxyXG4gICAgICBcInZpZXdGbGFnXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudmlld0ZsYWcsXHJcbiAgICAgIFwidmlld1JlZG9cIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS52aWV3UmVkbywgLy9bdHJ1ZSwgZmFsc2VdXHJcbiAgICAgIFwicXVlc3Rpb25zXCI6IHRoaXMuc2VsZWN0ZWRTZWN0aW9uLFxyXG4gICAgICBcImZpbHRlclwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcixcclxuICAgICAgXCJhcHByb3ZlRmlsdGVyXCI6IHRoaXMuYXBwcm92ZUZpbHRlcixcclxuICAgIH1cclxuICAgIHRoaXMudHJheFNlcnZpY2Uudmlld0NoZWNrbGlzdHModGhpcy52aWV3Q2hlY2tsaXN0c29wdGlvbnMpPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy52aWV3Q2hlY2tsaXN0c0RhdGEgPSByZXMuZGF0YTtcclxuICAgICAgICAgIGlmICh0aGlzLnNob3dzaW5nbGUpIHtcclxuICAgICAgICAgICAgbGV0IGxvb3BpbmdEYXRhID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlID09PSAnQ2x1c3RlcnMnID8gdGhpcy5zZWxlY3RlZFN0b3JlcyA6IHRoaXMuc2VsZWN0ZWRVc2Vyc1xyXG4gICAgICAgICAgICB0aGlzLnZpZXdDaGVja2xpc3RzRGF0YS5jaGVja2xpc3RBbnN3ZXJzLm1hcCgoZGV0YWlsczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGxvb3BpbmdEYXRhLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZS51c2VyRW1haWwgPT09IGRldGFpbHMuc3RvcmVQcm9maWxlPy51c2VyRW1haWwpLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGRldGFpbHMucXVlc3Rpb25BbnN3ZXJbMF0ucXVlc3Rpb25zWzBdLmNoZWNrZWQgPSB0cnVlXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50b3RhbENvdW50ID0gdGhpcy52aWV3Q2hlY2tsaXN0c0RhdGEudG90YWxfY291bnRcclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld25vRGF0YSA9IGZhbHNlXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudmlld0NoZWNrbGlzdHNEYXRhID0gW11cclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld25vRGF0YSA9IHRydWVcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIHRhc2tyZWRpcmVjdChxdWVzdGlvbjogYW55LCBzdG9yZVByb2ZpbGU6IGFueSwgY2hlY2tsaXN0SW5mbzogYW55KSB7XHJcbiAgICBpZiAoc3RvcmVQcm9maWxlPy5zdG9yZV9pZCAmJiBzdG9yZVByb2ZpbGU/LnN0b3JlX2lkICE9ICcnKSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy8nLCB7IHNraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZSB9KS50aGVuKCgpID0+IHtcclxuICAgICAgICAvL3F1ZXN0aW9uLnRhc2tEYXRlID8gcXVlc3Rpb24udGFza0RhdGUgOiBjaGVja2xpc3RJbmZvLmRhdGUgIGFzIHBlciBnb3dyaSB0b2xkXHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RyYXgvZ2FsbGVyeSddLFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBxdWVyeVBhcmFtczoge1xyXG4gICAgICAgICAgICAgIENoZWNrbGlzdERhdGU6IGRheWpzKGNoZWNrbGlzdEluZm8uZGF0ZSkuZm9ybWF0KCdZWVlZLU1NLUREJyksXHJcbiAgICAgICAgICAgICAgc3RvcmVJZDogc3RvcmVQcm9maWxlPy5zdG9yZV9pZCxcclxuICAgICAgICAgICAgICBjaGVja2xpc3RUeXBlOiBcInRhc2tcIixcclxuICAgICAgICAgICAgICBzb3VyY2VDaGVja0xpc3RfaWQ6IHF1ZXN0aW9uLnRhc2tJZCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcclxuICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcclxuICAgICAgICAgIH1cclxuICAgICAgICApXHJcbiAgICAgIH0pXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvJywgeyBza2lwTG9jYXRpb25DaGFuZ2U6IHRydWUgfSkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RyYXgvZ2FsbGVyeSddLFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBxdWVyeVBhcmFtczoge1xyXG4gICAgICAgICAgICAgIENoZWNrbGlzdERhdGU6IGRheWpzKGNoZWNrbGlzdEluZm8uZGF0ZSkuZm9ybWF0KCdZWVlZLU1NLUREJyksXHJcbiAgICAgICAgICAgICAgdXNlckVtYWlsOiBzdG9yZVByb2ZpbGU/LnVzZXJFbWFpbCxcclxuICAgICAgICAgICAgICBjaGVja2xpc3RUeXBlOiBcInRhc2tcIixcclxuICAgICAgICAgICAgICBzb3VyY2VDaGVja0xpc3RfaWQ6IHF1ZXN0aW9uLnRhc2tJZCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcclxuICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcclxuICAgICAgICAgIH1cclxuICAgICAgICApXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgVmlld0luRGV0YWlscyhkYXRhOiBhbnksIGNoZWNrbGlzdEluZm86IGFueSwgc3RvcmVQcm9maWxlOiBhbnksIHNlY3Rpb246IGFueSkge1xyXG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKFRhc2tMb2dzQ29tcG9uZW50LCB7IGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbGcnLCB9KTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLm9wZXJhdGlvbnR5cGUgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGU7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5zb3VyY2VDaGVja0xpc3RfaWQgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZDtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmlucHV0RGF0YSA9IGRhdGE7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5jaGVja2xpc3RJbmZvID0gY2hlY2tsaXN0SW5mbztcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnN0b3JlUHJvZmlsZSA9IHN0b3JlUHJvZmlsZTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnNlY3Rpb25JbmZvID0gc2VjdGlvbjtcclxuXHJcbiAgfVxyXG5cclxuICBhZGRUYXNrKHR5cGU6IGFueSwgZGF0YTogYW55LCBjaGVja2xpc3RJbmZvOiBhbnksIHN0b3JlUHJvZmlsZTogYW55LCBzZWN0aW9uOiBhbnkpIHtcclxuXHJcbiAgICAvLyBpZihkYXRhLmFuc3dlclR5cGUgPT09XCJtdWx0aXBsZWNob2ljZXNpbmdsZVwifHxkYXRhLmFuc3dlclR5cGUgPT09XCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIpe1xyXG4gICAgLy8gICBkYXRhLmFuc3dlcnMgPSBbXVxyXG4gICAgLy8gfVxyXG4gICAgaWYgKGRhdGEubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlICYmIGRhdGEubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlLmxlbmd0aCkge1xyXG4gICAgICBkYXRhLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgPSBkYXRhLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5pbWFnZVVSTCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkYXRhLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgPSBbZGF0YS5xdWVzdGlvblJlZmVyZW5jZUltYWdlXTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQWRkVGFza0NvbXBvbmVudCwge1xyXG4gICAgICBiYWNrZHJvcDogJ3N0YXRpYycsXHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbGcnLFxyXG4gICAgfSk7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS50eXBlID0gdHlwZTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLm9wZXJhdGlvbnR5cGUgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGU7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5zb3VyY2VDaGVja0xpc3RfaWQgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZDtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmlucHV0RGF0YSA9IGRhdGE7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5jaGVja2xpc3RJbmZvID0gY2hlY2tsaXN0SW5mbztcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnN0b3JlUHJvZmlsZSA9IHN0b3JlUHJvZmlsZTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnNlY3Rpb25JbmZvID0gc2VjdGlvbjtcclxuXHJcblxyXG4gICAgZGF0YT8uYW5zd2Vycy5mb3JFYWNoKChhbnM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoYW5zPy5tdWx0aVJyZWZlcmVuY2VJbWFnZSAmJiBhbnM/Lm11bHRpUnJlZmVyZW5jZUltYWdlLmxlbmd0aCkge1xyXG4gICAgICAgIGFucy5yZWZlcmVuY2VJbWFnZSA9IGFucy5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0uaW1hZ2VVUkwpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChhbnM/LnJlZmVyZW5jZUltYWdlICYmIGFucz8ucmVmZXJlbmNlSW1hZ2UgIT0gJycgJiYgYW5zPy5yZWZlcmVuY2VJbWFnZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICBhbnMucmVmZXJlbmNlSW1hZ2UgPSBbYW5zPy5yZWZlcmVuY2VJbWFnZV1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UudGFza0RldGFpbHMgPSB7XHJcbiAgICAgIHNlY3Rpb25zOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgXCJpZFwiOiBcIlwiLFxyXG4gICAgICAgICAgXCJuYW1lXCI6IFwiXCIsXHJcbiAgICAgICAgICBcInF1ZXN0aW9uc1wiOiBbZGF0YV1cclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuXHJcbiAgICB9O1xyXG5cclxuICAgIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFN0b3JlcyA9IFtdO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSBbXTtcclxuICAgICAgaWYgKHJlc3VsdCA9PSAnc3VibWl0Jykge1xyXG4gICAgICAgIGlmICh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnKSB7XHJcbiAgICAgICAgICB0aGlzLmdldENoZWNrbGlzdFFBKGZhbHNlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5nZXRUYXNrUUEodGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlKVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBkYXRhLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgPSAnJ1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBjaGVja2FsbGFwcHJvdmVkKCkge1xyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBsZXQgdXNlcnMgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnVzZXJMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnVzZXJFbWFpbClcclxuICAgIGxldCBpbnB1dCA9IHtcclxuICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJ1c2VyRW1haWxcIjogdXNlcnMsXHJcbiAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgIFwiQ2hlY2tsaXN0VHlwZVwiOiBcImN1c3RvbVwiLFxyXG4gICAgICBcInR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlLFxyXG4gICAgICBcImZpbHRlcnR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlLFxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ2NoZWNrbGlzdCcpIHtcclxuICAgICAgdGhpcy50cmF4U2VydmljZS5BbGxhcHByb3ZhbHN0YXR1c2NoZWNrbGlzdChpbnB1dCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWxsYXBwcm92YWxTdGF0dXMgPSBmYWxzZVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hbGxhcHByb3ZhbFN0YXR1cyA9IHRydWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRyYXhTZXJ2aWNlLkFsbGFwcHJvdmFsc3RhdHVzdGFzayhpbnB1dCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWxsYXBwcm92YWxTdGF0dXMgPSBmYWxzZVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hbGxhcHByb3ZhbFN0YXR1cyA9IHRydWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcblxyXG5cclxuICB9XHJcbiAgYXBwcm92YWxzdGF0dXMoKSB7XHJcbiAgICB0aGlzLmNoZWNrYWxsYXBwcm92ZWQoKVxyXG4gICAgbGV0IHN0b3JlcyA9IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuc3RvcmVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICBsZXQgdXNlcnMgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnVzZXJMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnVzZXJFbWFpbClcclxuICAgIGxldCBpbnB1dCA9IHtcclxuICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJ1c2VyRW1haWxcIjogdXNlcnMsXHJcbiAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgIFwiQ2hlY2tsaXN0VHlwZVwiOiBcImN1c3RvbVwiLFxyXG4gICAgICBcInR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlLFxyXG4gICAgICBcImZpbHRlcnR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXJ0eXBlLFxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ2NoZWNrbGlzdCcpIHtcclxuICAgICAgdGhpcy50cmF4U2VydmljZS5hcHByb3ZhbHN0YXR1c2NoZWNrbGlzdChpbnB1dCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwcm92YWxTdGF0dXMgPSBmYWxzZVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hcHByb3ZhbFN0YXR1cyA9IHRydWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRyYXhTZXJ2aWNlLmFwcHJvdmFsc3RhdHVzdGFzayhpbnB1dCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwcm92YWxTdGF0dXMgPSBmYWxzZVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hcHByb3ZhbFN0YXR1cyA9IHRydWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcblxyXG5cclxuICB9XHJcbiAgdGFza1RhYih0YXNrOiBhbnkpIHtcclxuXHJcblxyXG4gICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ2ZpbHRlcicpPy5zZXRWYWx1ZSh0YXNrLmtleSlcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLm5vRGF0YSA9IGZhbHNlXHJcbiAgICB0aGlzLnZpZXdsb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMudmlld25vRGF0YSA9IGZhbHNlO1xyXG4gICAgbGV0IG9iaiA9IHtcclxuICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZyb21EYXRlLFxyXG4gICAgICBcInRvRGF0ZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnRvRGF0ZSxcclxuICAgICAgXCJDaGVja2xpc3RUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tMaXN0VHlwZSwgLy8gW1wiY3VzdG9tXCIsIFwiQUlcIl1cclxuICAgICAgXCJjaGVja2xpc3ROYW1lXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tsaXN0TmFtZSxcclxuICAgICAgXCJjaGVja2xpc3RJZFwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZCxcclxuICAgICAgXCJzdG9yZUlkXCI6IHRhc2suc3RvcmVzLFxyXG4gICAgICBcImFuc3dlclR5cGVcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5hbnN3ZXJUeXBlLCAvL1tcImRlc2NyaXB0aXZlXCIsXCJ5ZXMvbm9cIixcIm11bHRpcGxlY2hvaWNlc2luZ2xlXCIsXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsXCJpbWFnZVwiLFwidmlkZW9cIixcImRlc2NyaXB0aXZlSW1hZ2VcIixcIm11bHRpcGxlSW1hZ2VcIl1cclxuICAgICAgXCJ2aWV3RmxhZ1wiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnZpZXdGbGFnLCAvL1t0cnVlLCBmYWxzZV1cclxuICAgICAgXCJ2aWV3UmVkb1wiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnZpZXdSZWRvLCAvL1t0cnVlLCBmYWxzZV1cclxuICAgICAgXCJmaWx0ZXJcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5maWx0ZXIsXHJcbiAgICAgIFwiYXBwcm92ZUZpbHRlclwiOiB0aGlzLmFwcHJvdmVGaWx0ZXIsXHJcbiAgICAgIFwiZmlsdGVydHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcnR5cGUsXHJcbiAgICAgIFwicXVlc3Rpb25zXCI6IHRoaXMuc2VsZWN0ZWRTZWN0aW9uLmxlbmd0aCA+IDAgJiYgdGhpcy5zZWxlY3RlZFNlY3Rpb25bMF0ucXVlc3Rpb25zLmxlbmd0aCA+IDAgPyB0aGlzLnNlbGVjdGVkU2VjdGlvblswXS5xdWVzdGlvbnNbMF0gOiBcIlwiXHJcbiAgICB9XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldGNoZWNrbGlzdChvYmopPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgLy8gdGhpcy5jaGVja2xpc3REYXRhID0gcmVzPy5kYXRhLmNoZWNrbGlzdFF1ZXN0aW9ucztcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICAgIGlmICh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmZpbHRlcnR5cGUgPT09ICdDbHVzdGVycycpIHtcclxuICAgICAgICAgICAgdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy5zZXRWYWx1ZShyZXM/LmRhdGE/LnN0b3Jlc0RldGFpbHMpXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgndXNlckxpc3QnKT8uc2V0VmFsdWUocmVzPy5kYXRhPy5zdG9yZXNEZXRhaWxzKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy52aWV3Q2hlY2tsaXN0cyhcImFsbFwiLCBcImFsbFwiKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGlzdERhdGEgPSBbXTtcclxuICAgICAgICAgIHRoaXMudmlld0NoZWNrbGlzdHNEYXRhID0gW107XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld25vRGF0YSA9IHRydWU7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG4gIGNhdGVnb3J5Q2hhbmdlKCkge1xyXG4gICAgdGhpcy5jdXN0b21lcnVuYXR0ZW5kZWRsaXN0KGZhbHNlKVxyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZCgnem9vbVBvcHVwJykgem9vbVBvcHVwOiBFbGVtZW50UmVmO1xyXG4gIG9wZW5Nb2RlbChkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLnpvb21Qb3B1cCwgeyBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ3hsJyB9KTtcclxuICAgIHRoaXMudmlld0ltYWdlID0gZGF0YTtcclxuICB9XHJcbiAgZ2V0R3JpZENvbHVtbnMobGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKGxlbmd0aCA9PT0gMSkgcmV0dXJuICcxZnInO1xyXG4gICAgaWYgKGxlbmd0aCA9PT0gMiB8fCBsZW5ndGggPT09IDQgfHwgbGVuZ3RoID09PSAzKSByZXR1cm4gJ3JlcGVhdCgyLCAxZnIpJztcclxuICAgIGlmIChsZW5ndGggPT09IDUgfHwgbGVuZ3RoID09PSA2KSByZXR1cm4gJ3JlcGVhdCgzLCAxZnIpJztcclxuICAgIC8vIGlmIChsZW5ndGggPT09IDcgfHwgbGVuZ3RoID09PSA4KSByZXR1cm4gJ3JlcGVhdCg0LCAxZnIpJztcclxuICAgIC8vIGlmIChsZW5ndGggPD0gMTApIHJldHVybiAncmVwZWF0KDUsIDFmciknO1xyXG4gICAgcmV0dXJuICdyZXBlYXQoMywgMWZyKSc7XHJcbiAgfVxyXG5cclxuICBnZXRHcmlkUm93SGVpZ2h0KGxlbmd0aDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmIChsZW5ndGggPD0gMikgcmV0dXJuICc0NTBweCc7XHJcbiAgICByZXR1cm4gJzIyMHB4JztcclxuICB9XHJcbiAgaGFzUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBxdWVzdGlvbj8uYW5zd2Vycz8uc29tZSgoYTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlZiA9IGEucmVmZXJlbmNlSW1hZ2U7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgKEFycmF5LmlzQXJyYXkocmVmKSAmJiByZWYubGVuZ3RoID4gMCkgfHxcclxuICAgICAgICAodHlwZW9mIHJlZiA9PT0gJ3N0cmluZycgJiYgcmVmLnRyaW0oKSAhPT0gJycpXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGhhc0NoZWNrbGlzdFJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbjogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gcXVlc3Rpb24/LmFuc3dlcnM/LnNvbWUoKGE6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCByZWYgPSBhLnJlZmVyZW5jZUltYWdlO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIChBcnJheS5pc0FycmF5KHJlZikgJiYgcmVmLmxlbmd0aCA+IDApIHx8XHJcbiAgICAgICAgKHR5cGVvZiByZWYgPT09ICdzdHJpbmcnICYmIHJlZi50cmltKCkgIT09ICcnKVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgaGFzUXVlc3Rpb25SZWZlcmVuY2VJbWFnZXMocXVlc3Rpb246IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2U/Lmxlbmd0aCA+IDAgJiZcclxuICAgICAgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZVswXSAhPT0gJyc7XHJcbiAgfVxyXG5cclxuICBpc1ZhbGlkSW1hZ2UoaXRlbTogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gaXRlbSAmJiBpdGVtICE9PSAnJyAmJiBpdGVtICE9PSBudWxsO1xyXG4gIH1cclxuICBzZWxlY3RlZEltYWdlVXJsOiBhbnkgPSAnJztcclxuICBzZWxlY3RlZEltYWdlTmFtZTogc3RyaW5nID0gJyc7XHJcbiAgY3VycmVudEltYWdlSW5kZXg6IG51bWJlciA9IDA7XHJcbiAgaW1hZ2VMaXN0OiBzdHJpbmdbXSA9IFtdO1xyXG4gIGltYWdlTmFtZUxpc3Q6IHN0cmluZ1tdID0gW107XHJcbiAgb3BlbkltYWdlUG9wdXAxKGltYWdlczogc3RyaW5nW10sIGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuaW1hZ2VMaXN0ID0gaW1hZ2VzO1xyXG4gICAgdGhpcy5jdXJyZW50SW1hZ2VJbmRleCA9IGluZGV4O1xyXG4gICAgdGhpcy5zZWxlY3RlZEltYWdlVXJsID0gdGhpcy5pbWFnZUxpc3Q7XHJcbiAgICBjb25zdCBtb2RhbDogYW55ID0gbmV3ICh3aW5kb3cgYXMgYW55KS5ib290c3RyYXAuTW9kYWwoXHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWFnZU1vZGFsMScpXHJcbiAgICApO1xyXG4gICAgbW9kYWwuc2hvdygpO1xyXG4gIH1cclxuICBvcGVuSW1hZ2VQb3B1cChpbWFnZXM6IHN0cmluZ1tdLCBuYW1lczogc3RyaW5nW10sIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuaW1hZ2VMaXN0ID0gaW1hZ2VzO1xyXG4gICAgdGhpcy5pbWFnZU5hbWVMaXN0ID0gbmFtZXM7XHJcbiAgICB0aGlzLmN1cnJlbnRJbWFnZUluZGV4ID0gaW5kZXg7XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZEltYWdlVXJsID0gdGhpcy5pbWFnZUxpc3RbdGhpcy5jdXJyZW50SW1hZ2VJbmRleF07XHJcbiAgICB0aGlzLnNlbGVjdGVkSW1hZ2VOYW1lID0gdGhpcy5pbWFnZU5hbWVMaXN0W3RoaXMuY3VycmVudEltYWdlSW5kZXhdO1xyXG4gICAgLy8gY29uc29sZS5sb2coXCIxMjMyMTMxM1wiLCB0aGlzLmltYWdlTGlzdCwgaW5kZXgpXHJcbiAgICBjb25zdCBtb2RhbDogYW55ID0gbmV3ICh3aW5kb3cgYXMgYW55KS5ib290c3RyYXAuTW9kYWwoXHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWFnZU1vZGFsJylcclxuICAgICk7XHJcbiAgICBtb2RhbC5zaG93KCk7XHJcbiAgfVxyXG5cclxuICBuYXZpZ2F0ZUltYWdlKGRpcmVjdGlvbjogJ3ByZXYnIHwgJ25leHQnKTogdm9pZCB7XHJcbiAgICBpZiAoZGlyZWN0aW9uID09PSAncHJldicgJiYgdGhpcy5jdXJyZW50SW1hZ2VJbmRleCA+IDApIHtcclxuICAgICAgdGhpcy5jdXJyZW50SW1hZ2VJbmRleC0tO1xyXG4gICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09ICduZXh0JyAmJiB0aGlzLmN1cnJlbnRJbWFnZUluZGV4IDwgdGhpcy5pbWFnZUxpc3QubGVuZ3RoIC0gMSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRJbWFnZUluZGV4Kys7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZEltYWdlVXJsID0gdGhpcy5pbWFnZUxpc3RbdGhpcy5jdXJyZW50SW1hZ2VJbmRleF07XHJcbiAgICB0aGlzLnNlbGVjdGVkSW1hZ2VOYW1lID0gdGhpcy5pbWFnZU5hbWVMaXN0W3RoaXMuY3VycmVudEltYWdlSW5kZXhdO1xyXG5cclxuICB9XHJcblxyXG4gIGdldEltYWdlVXJscyh1c2VyQW5zd2VyczogYW55W10pOiBzdHJpbmdbXSB7XHJcbiAgICAvLyByZXR1cm4gdXNlckFuc3dlcnMubWFwKGEgPT4gdGhpcy5lbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgYS5hbnN3ZXIpO1xyXG4gICAgLy8gPyB0aGlzLnNhbml0aXplVXJsKHRoaXMuZW52aXJvbm1lbnQudHJheFJ1bkFpQ0ROICsgYS5ydW5BSUFuc3dlcikgXHJcbiAgICByZXR1cm4gdXNlckFuc3dlcnMubWFwKGEgPT4gYS5ydW5BSUFuc3dlclxyXG4gICAgICA/IHRoaXMuZW52aXJvbm1lbnQudHJheFJ1bkFpQ0ROICsgYS5ydW5BSUFuc3dlclxyXG4gICAgICA6IHRoaXMuZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGEuYW5zd2VyXHJcbiAgICApLmZpbHRlcih1cmwgPT4gdXJsKTtcclxuICB9XHJcblxyXG4gIGdldEltYWdlTmFtZXModXNlckFuc3dlcnM6IGFueVtdKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIHVzZXJBbnN3ZXJzLm1hcChhID0+IGEuYW5zd2VyKTtcclxuICB9XHJcblxyXG4gIGdldFJlZmNoZWNrbGlzdEltYWdlVXJscyh1c2VyQW5zd2VyczogYW55W10pOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdXNlckFuc3dlcnMubWFwKGEgPT4gdGhpcy5lbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgYS5yZWZlcmVuY2VJbWFnZSk7XHJcbiAgfVxyXG5cclxuICBnZXRSZWZjaGVja2xpc3RJbWFnZU5hbWVzKHVzZXJBbnN3ZXJzOiBhbnlbXSk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiB1c2VyQW5zd2Vycy5tYXAoYSA9PiBhLnJlZmVyZW5jZUltYWdlKTtcclxuICB9XHJcblxyXG4gIGdldFF1c3RSZWZjaGVja2xpc3RJbWFnZVVybHModXNlckFuc3dlcnM6IGFueVtdKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIHVzZXJBbnN3ZXJzLm1hcChhID0+IHRoaXMuZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGEucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSk7XHJcbiAgfVxyXG5cclxuICBnZXRRdXN0UmVmY2hlY2tsaXN0SW1hZ2VOYW1lcyh1c2VyQW5zd2VyczogYW55W10pOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdXNlckFuc3dlcnMubWFwKGEgPT4gYS5xdWVzdGlvblJlZmVyZW5jZUltYWdlKTtcclxuICB9XHJcbiAgZ2V0UmVmSW1hZ2VVcmxzKHVzZXJBbnN3ZXJzOiBhbnlbXSk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiB1c2VyQW5zd2Vycy5tYXAoYSA9PiB0aGlzLmVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBhKTtcclxuICB9XHJcblxyXG4gIGdldFJlZkltYWdlTmFtZXModXNlckFuc3dlcnM6IGFueVtdKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIHVzZXJBbnN3ZXJzLm1hcChhID0+IGEpO1xyXG4gIH1cclxuXHJcbiAgZG93bmxvYWRWaWRlbyhmaWxlTmFtZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLmVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBmaWxlTmFtZTtcclxuICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBhLmhyZWYgPSB1cmw7XHJcbiAgICBhLmRvd25sb2FkID0gZmlsZU5hbWUuc3BsaXQoJy8nKS5wb3AoKSB8fCAndmlkZW8ubXA0JzsgIC8vIGV4dHJhY3QgZmlsZSBuYW1lXHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xyXG4gICAgYS5jbGljaygpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhKTtcclxuICB9XHJcblxyXG4gIGhhc011bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZXMocXVlc3Rpb246IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHF1ZXN0aW9uLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZT8ubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIGdldE11bHRpUmVmSW1hZ2VVcmxzKHVzZXJBbnN3ZXJzOiBhbnlbXSk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiB1c2VyQW5zd2Vycy5tYXAoYSA9PiB0aGlzLmVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBhLmltYWdlVVJMKTtcclxuICB9XHJcblxyXG4gIG9wZW5NdWx0aUltYWdlUG9wdXAoaW1hZ2VzOiBzdHJpbmdbXSwgbmFtZXM6IHN0cmluZ1tdLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmltYWdlTGlzdCA9IGltYWdlcztcclxuICAgIHRoaXMuaW1hZ2VOYW1lTGlzdCA9IG5hbWVzO1xyXG4gICAgdGhpcy5jdXJyZW50SW1hZ2VJbmRleCA9IGluZGV4O1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRJbWFnZVVybCA9IHRoaXMuaW1hZ2VMaXN0W3RoaXMuY3VycmVudEltYWdlSW5kZXhdO1xyXG4gICAgdGhpcy5zZWxlY3RlZEltYWdlTmFtZSA9IHRoaXMuaW1hZ2VOYW1lTGlzdFt0aGlzLmN1cnJlbnRJbWFnZUluZGV4XTtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwiMTIzMjEzMTNcIiwgdGhpcy5pbWFnZUxpc3QsIGluZGV4KVxyXG4gICAgY29uc3QgbW9kYWw6IGFueSA9IG5ldyAod2luZG93IGFzIGFueSkuYm9vdHN0cmFwLk1vZGFsKFxyXG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1hZ2VNb2RhbCcpXHJcbiAgICApO1xyXG4gICAgbW9kYWwuc2hvdygpO1xyXG4gIH1cclxuXHJcbiAgaGFzTXVsdGlSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb246IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHF1ZXN0aW9uLm11bHRpUmVmZXJlbmNlSW1hZ2U/Lmxlbmd0aCA+IDA7XHJcbiAgfVxyXG5cclxuICBoYXNJbWFnZU11bHRpUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBxdWVzdGlvbj8uYW5zd2Vycz8uc29tZSgoYTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlZiA9IGEubXVsdGlSZWZlcmVuY2VJbWFnZTtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICAoQXJyYXkuaXNBcnJheShyZWYpICYmIHJlZi5sZW5ndGggPiAwKSB8fFxyXG4gICAgICAgICh0eXBlb2YgcmVmID09PSAnc3RyaW5nJyAmJiByZWYudHJpbSgpICE9PSAnJylcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaGFzSW1hZ2VBbnN3ZXIocXVlc3Rpb246IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHF1ZXN0aW9uPy51c2VyQW5zd2VyPy5zb21lKChhOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgcmVmID0gYS5hbnN3ZXI7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgKEFycmF5LmlzQXJyYXkocmVmKSAmJiByZWYubGVuZ3RoID4gMCkgfHxcclxuICAgICAgICAodHlwZW9mIHJlZiA9PT0gJ3N0cmluZycgJiYgcmVmLnRyaW0oKSAhPT0gJycpXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNoZWNrRGV0ZWN0aW9uU3RhdHVzKHJ1bkFJRGF0YT86IGFueVtdKTogeyBrZXlQcmVzZW50OiBib29sZWFuOyBrZXlWYWx1ZTogYm9vbGVhbiB9IHtcclxuICAgIGxldCBrZXlQcmVzZW50ID0gZmFsc2U7XHJcbiAgICBsZXQga2V5VmFsdWUgPSBmYWxzZTtcclxuXHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocnVuQUlEYXRhKSkge1xyXG4gICAgICByZXR1cm4geyBrZXlQcmVzZW50LCBrZXlWYWx1ZSB9O1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcnVuQUlEYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChydW5BSURhdGFbaV0/LmxhYmxlTmFtZSA9PT0gJ2RldGVjdGlvblN0YXR1cycpIHtcclxuICAgICAgICBrZXlQcmVzZW50ID0gdHJ1ZTtcclxuICAgICAgICBrZXlWYWx1ZSA9IHJ1bkFJRGF0YVtpXT8udmFsdWU/LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnO1xyXG4gICAgICAgIHJldHVybiB7IGtleVByZXNlbnQsIGtleVZhbHVlIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB7IGtleVByZXNlbnQsIGtleVZhbHVlIH07IC8vIE5vIGRldGVjdGlvblN0YXR1cyBmb3VuZFxyXG4gIH1cclxuXHJcbiAgc2FuaXRpemVVcmwodXJsOiBzdHJpbmcpOiBTYWZlVXJsIHtcclxuICAgIC8vIEVuY29kZSBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gdGhlIFVSTFxyXG4gICAgLy8gY29uc3QgZW5jb2RlZFVybCA9IGVuY29kZVVSSSh1cmwpO1xyXG5cclxuICAgIC8vIGNvbnN0IGVuY29kZWRVcmwgPSBlbmNvZGVVUkkodXJsKS5yZXBsYWNlKC9cXD8vZywgJyUzRicpO1xyXG4gICAgLy8gcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwoZW5jb2RlZFVybCk7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgcGFydHMgPSB1cmwuc3BsaXQoJy8nKTtcclxuICAgICAgY29uc3QgZG9tYWluID0gcGFydHMuc2xpY2UoMCwgMykuam9pbignLycpO1xyXG4gICAgICBjb25zdCBwYXRoID0gcGFydHMuc2xpY2UoMykubWFwKHAgPT4gZW5jb2RlVVJJQ29tcG9uZW50KHApKS5qb2luKCcvJyk7XHJcbiAgICAgIGNvbnN0IGVuY29kZWRVcmwgPSBgJHtkb21haW59LyR7cGF0aH1gO1xyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwoZW5jb2RlZFVybCk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKHVybCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtdWx0aUltYWdlQ2hlY2tEZXRlY3Rpb25TdGF0dXModXNlckFuc3dlcnM/OiBhbnlbXSk6IHsga2V5UHJlc2VudDogYm9vbGVhbjsga2V5VmFsdWU6IGJvb2xlYW4gfSB7XHJcbiAgICBsZXQga2V5UHJlc2VudCA9IGZhbHNlO1xyXG4gICAgbGV0IGtleVZhbHVlID0gZmFsc2U7XHJcblxyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHVzZXJBbnN3ZXJzKSkge1xyXG4gICAgICByZXR1cm4geyBrZXlQcmVzZW50LCBrZXlWYWx1ZSB9O1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAoY29uc3QgaXRlbSBvZiB1c2VyQW5zd2Vycykge1xyXG4gICAgICBpZiAoaXRlbS5ydW5BSURhdGEgJiYgQXJyYXkuaXNBcnJheShpdGVtLnJ1bkFJRGF0YSkpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGl0ZW0ucnVuQUlEYXRhKSB7XHJcbiAgICAgICAgICBpZiAoZW50cnkubGFibGVOYW1lID09PSAnZGV0ZWN0aW9uU3RhdHVzJykge1xyXG4gICAgICAgICAgICBrZXlQcmVzZW50ID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYgKGVudHJ5LnZhbHVlID09PSAnRmFsc2UnKSB7XHJcbiAgICAgICAgICAgICAga2V5VmFsdWUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICByZXR1cm4geyBrZXlQcmVzZW50LCBrZXlWYWx1ZSB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB1c2VyQW5zd2Vycy5sZW5ndGg7IGkrKykge1xyXG4gICAgLy8gICBpZihBcnJheS5pc0FycmF5KHVzZXJBbnN3ZXJzW2ldLnJ1bkFJRGF0YSkpe1xyXG4gICAgLy8gICAgIGxldCBydW5BSURhdGFzID0gdXNlckFuc3dlcnNbaV0ucnVuQUlEYXRhO1xyXG4gICAgLy8gICAgIGZvciAobGV0IGogPSAwOyBqIDwgcnVuQUlEYXRhcy5sZW5ndGg7IGorKykge1xyXG4gICAgLy8gICAgICAgaWYgKHJ1bkFJRGF0YXNbal0/LmxhYmxlTmFtZSA9PT0gJ2RldGVjdGlvblN0YXR1cycpIHtcclxuICAgIC8vICAgICAgICAga2V5UHJlc2VudCA9IHRydWU7XHJcbiAgICAvLyAgICAgICAgIGtleVZhbHVlID0gcnVuQUlEYXRhc1tqXT8udmFsdWU/LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhbHNlJztcclxuICAgIC8vICAgICAgICAgcmV0dXJuIHsga2V5UHJlc2VudCwga2V5VmFsdWUgfTtcclxuICAgIC8vICAgICAgIH1cclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgIH0gICAgICBcclxuICAgIC8vIH1cclxuICAgIHJldHVybiB7IGtleVByZXNlbnQsIGtleVZhbHVlIH07IC8vIE5vIGRldGVjdGlvblN0YXR1cyBmb3VuZFxyXG4gIH1cclxuXHJcbn0iLCI8ZGl2ICpuZ0lmPVwibm90aWZ5Q291bnQ+MFwiIGNsYXNzPVwiaC14bC0xMDAgZmxleC1yb3cgZmxleC1zdGFjayBmbGV4LXdyYXAgcC0yXCI+XHJcbiAgICA8IS0tIHRvYXN0IGNhcmQgc3RhcnRzIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cInRvYXN0Y2FyZCBjb2wtbWQtMTIgbWItNFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHctMTAwXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9hc3R0ZXh0IGQtYmxvY2tcIj48c3BhbiBjbGFzcz1cIm1lLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAxNiAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOS4xNDIzNCAyLjRWMS42ODc1QzkuMTQyMzQgMS4wMzE3OCA4LjYzMTY2IDAuNSA3Ljk5OTU1IDAuNUM3LjM2NzQ0IDAuNSA2Ljg1Njc1IDEuMDMxNzggNi44NTY3NSAxLjY4NzVWMi40QzQuMjE3NjEgMi45NTAzMyAyLjI4NTU4IDUuMzQ2NDkgMi4yODU1OCA4LjIxODc1VjguOTE2NDFDMi4yODU1OCAxMC42NjQzIDEuNjY5MTggMTIuMzQ1MyAwLjU1MzUzMiAxMy42NTE2TDAuMjg4NjkgMTMuOTU5NkMtMC4wMTAzMDQ0IDE0LjMxMjEgLTAuMDg0MDM5NiAxNC44MDk0IDAuMTAwMzA3IDE1LjIzNjFDMC4yODQ2NTQgMTUuNjYyOSAwLjY5MjgxIDE1LjkzNzUgMS4xNDI3OSAxNS45Mzc1SDE0Ljg1NjNDMTUuMzA2MyAxNS45Mzc1IDE1LjcxMzQgMTUuNjYyOSAxNS44OTkxIDE1LjIzNjFDMTYuMDg0OCAxNC44MDk0IDE2LjAwOTggMTQuMzEyMSAxNS43MDk4IDEzLjk1OTZMMTUuNDQ1NiAxMy42NTE2QzE0LjMzMTMgMTIuMzQ1MyAxMy43MTM1IDEwLjY2NDMgMTMuNzEzNSA4LjkxNjQxVjguMjE4NzVDMTMuNzEzNSA3Ljk0MTI1IDEzLjY5NTIgNy42NjgxOSAxMy42NTk3IDcuNDAwODFDMTMuMjY3NiA3LjU0NTc2IDEyLjg0MzIgNy42MjUgMTIuNCA3LjYyNUMxMC40MTE4IDcuNjI1IDguOCA2LjAzMDAxIDguOCA0LjA2MjVDOC44IDMuNDY3NzggOC44ODE5MyAyLjg5Mjg5IDkuMTQyMzQgMi40QzkuMTY0MTcgMi40MDQ2MSA5LjEyMDYxIDIuMzk1MTQgOS4xNDIzNCAyLjRaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzAwQTNGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi4zODE3OCAxOC44MDYxQzYuODEwMzMgMTkuMjUxNCA3LjM5MjQ0IDE5LjUgNy45OTk1NSAxOS41QzguNTc0NTIgMTkuNSA5LjE4ODc3IDE5LjI1MTQgOS42MTczMiAxOC44MDYxQzEwLjA0NTkgMTguMzYwNyAxMC4yODUxIDE3LjcyMjUgMTAuMjg1MSAxNy4xMjVINS43MTM5NkM1LjcxMzk2IDE3LjcyMjUgNS45NTMyMyAxOC4zNjA3IDYuMzgxNzggMTguODA2MVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMDBBM0ZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxM1wiIGN5PVwiMy41XCIgcj1cIjNcIiBmaWxsPVwiI0YwNDQzOFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5OZXcgRGV0ZWN0aW9uIEZvdW5kISBSZWZyZXNoIE5vdyB0byB2aWV3IG5ldyBkZXRlY3Rpb248L3NwYW4+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwicmVmcmVzaG5vdygpXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1vdXRsaW5lIGJ0biBhbGlnbi1pdGVtcy1lbmQgdGV4dC1ub3dyYXAgbXMtNCBjdXJzb3ItcG9pbnRlclwiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xMjE2NV82Mjc4MSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTkuMTY3MiAzLjMzMTcyVjguMzMxNzJNMTkuMTY3MiA4LjMzMTcySDE0LjE2NzJNMTkuMTY3MiA4LjMzMTcyTDE1LjMwODkgNC42OTgzOEMxNC4xNTk0IDMuNTQ4MTcgMTIuNjY3MiAyLjgwMjcxIDExLjA1NzIgMi41NzQzNEM5LjQ0NzE2IDIuMzQ1OTcgNy44MDY1MyAyLjY0NzA2IDYuMzgyNTEgMy40MzIyNUM0Ljk1ODUgNC4yMTc0NCAzLjgyODI2IDUuNDQ0MTggMy4xNjIxIDYuOTI3NjFDMi40OTU5NSA4LjQxMTA0IDIuMzI5OTcgMTAuMDcwOCAyLjY4OTE5IDExLjY1NjhDMy4wNDg0IDEzLjI0MjcgMy45MTMzNSAxNC42NjkgNS4xNTM2OCAxNS43MjA2QzYuMzk0MDEgMTYuNzcyMiA3Ljk0MjU0IDE3LjM5MjIgOS41NjU5IDE3LjQ4NzJDMTEuMTg5MyAxNy41ODIyIDEyLjc5OTUgMTcuMTQ3IDE0LjE1NCAxNi4yNDcxQzE1LjUwODUgMTUuMzQ3MyAxNi41MzM5IDE0LjAzMTYgMTcuMDc1NiAxMi40OTg0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzEyMTY1XzYyNzgxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPjxzcGFuIGNsYXNzPVwicmVmcmVzaHRleHQgbXMtMlwiPjwvc3Bhbj4gUmVmcmVzaCBOb3cgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwiZ2FsbGVyeS1jYXJkIHBvXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyIG1iLTRcIj5HYWxsZXJ5PC9kaXY+XHJcblxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJnYWxsZXJ5Rm9ybVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNvbC1tZC0zIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cInRvcDogMjAlO1wiIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNCB6LTJcIiBzdHlsZT1cIm1pbi13aWR0aDogMjYwcHggIWltcG9ydGFudDtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWQgW2Ryb3BzXT1cIidkb3duJ1wiIFtvcGVuc109XCIncmlnaHQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWx3YXlzU2hvd0NhbGVuZGFyc109XCJmYWxzZVwiIFtrZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlXT1cInRydWVcIiBbc2hvd0NhbmNlbF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVSYW5nZVwiIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZWNoYW5nZSgkZXZlbnQpXCIgKGNsaWNrKT1cInJlc2V0VmFsaWRhdGlvbigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RhcnREYXRlQ2hhbmdlZCk9XCJvblN0YXJ0RGF0ZUNoYW5nZSgkZXZlbnQpXCIgW2lzQ3VzdG9tRGF0ZV09XCJpc0N1c3RvbURhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvQXBwbHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NLVlZWVknLCBmaXJzdERheTogMSwgbW9udGhOYW1lczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImRhdGVyYW5nZVwiIFtyZWFkb25seV09XCJ0cnVlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBtYi00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItc2luZ2xlLXNlbGVjdCBbaXRlbXNdPVwiY2hlY2tsaXN0c1wiIFttdWx0aV09XCJmYWxzZVwiIFtzZWFyY2hGaWVsZF09XCInY2hlY2tMaXN0TmFtZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkRmllbGRdPVwiJ19pZCdcIiAoc2VsZWN0ZWQpPVwiY2hlY2tsaXN0TmFtZWNoYW5nZSgkZXZlbnQsZmFsc2UpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZFZhbHVlc109XCJbe2NoZWNrTGlzdE5hbWU6Z2FsbGVyeUZvcm0uZ2V0KCdjaGVja2xpc3ROYW1lJyk/LnZhbHVlfV1cIj48L2xpYi1zaW5nbGUtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgbWItNFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhY2Vob2xkZXItb3ZlcmxheVwiICpuZ0lmPVwiIShnYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy52YWx1ZT8ubGVuZ3RoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBTdG9yZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1zdG9yZXMtc2VsZWN0IFtpdGVtc109XCJzdG9yZUxpc3RcIiBbZGlzYWJsZWRdPVwiZmFsc2VcIiBbbXVsdGldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlYXJjaEZpZWxkXT1cIidzdG9yZU5hbWUnXCIgW2lkRmllbGRdPVwiJ3N0b3JlSWQnXCIgKHNlbGVjdGVkKT1cIm9uU3RvcmVTZWxlY3QoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkVmFsdWVzXT1cImdhbGxlcnlGb3JtLmdldCgnc3RvcmVMaXN0Jyk/LnZhbHVlXCI+PC9saWItc3RvcmVzLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwib25TdWJtaXQoKVwiIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBweC00IFwiPjxzcGFuPkFwcGx5PC9zcGFuPjwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjYXJkIG15LTJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWFpbi1jb250YWluZXIgbXktNSBcIj5cclxuXHJcbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJzaG93c2lkZW5hdiA/ICdjb2wtbWQtNCBsZWZ0LXNpZGViYXInOidkLW5vbmUnXCIgY2xhc3M9XCJoLTY1MHB4XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZSBoLTY1MHB4IHNjcm9sbC15XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2xpc3QtbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tsaXN0LXRpdGxlXCI+e3tjaGVja2xpc3ROYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdC10ZXh0XCI+e3tjaGVja0xpc3REZXNjcmlwdGlvbn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cInJvdyBsb2FkZXIgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub0RhdGEmJnNlbGVjdCA9PT0gJ2N1c3RvbScgfHwgbm9EYXRhJiZzZWxlY3QgPT09ICd0YXNrJ1wiIGNsYXNzPVwicm93IG10LTIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbXQtMjAgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwidy03NSBoLTMwMHB4XCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhMS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXRpdGxlIG10LTBcIj5ObyBkYXRhIGZvdW5kPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS1zdWJcIj5UaGVyZSBpcyBubyByZXN1bHQgZm9yIHRoaXMgY2hlY2tsaXN0PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub0RhdGEmJnNlbGVjdCAhPT0gJ2N1c3RvbScmJnNlbGVjdCAhPT0gJ3Rhc2snXCIgY2xhc3M9XCJyb3cgbXQtMjBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBtdC0yMCBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IG10LTIwIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctc3JjIG10LTUgdy00MFwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTIuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS10aXRsZVwiPk5vIERldGVjdGlvbnMgZm91bmQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXN1YlwiPlRoZXJlIGlzIG5vIGJyZWFjaGVzIGZvciB0aGUgc2VsZWN0ZWQgcGVyaW9kPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwiIW5vRGF0YSAmJiAhbG9hZGluZ1wiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdCA9PT0gJ2N1c3RvbSd8fHNlbGVjdCA9PT0gJ3Rhc2snXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmQgbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy0yNSBtZS0zIGJ0bi1yZXNpemVcIiAoY2xpY2spPVwidmlld0NoZWNrbGlzdHMoKVwiPiBSZXNldCA8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSB3LTI1IG1lLTMgYnRuLXJlc2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRTZWN0aW9uLmxlbmd0aD4wfHx0ZW1wc2VsZWN0ZWRTZWN0aW9uLmxlbmd0aD4wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uY2hlY2tsaXN0cmVzZXQoKVwiPiBSZXNldCA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwic2VsZWN0ZWRTZWN0aW9uLmxlbmd0aD4wfHx0ZW1wc2VsZWN0ZWRTZWN0aW9uLmxlbmd0aD4wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdy0yNSAgYnRuLXJlc2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RzaW5nbGVxdWVzdGlvbigpXCI+QXBwbHk8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTZcIiBbbmdDbGFzc109XCJzZWxlY3RlZFNlY3Rpb24ubGVuZ3RoPT09MCA/ICd2aWV3LWFsbCc6J3ZpZXctcXVlc3Rpb25zJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCIgKGNsaWNrKT1cIm9uY2hlY2tsaXN0cmVzZXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpZXcgQWxsIEFuc3dlcnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTJcIiAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBjaGVja2xpc3REYXRhOyBsZXQgaT1pbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCIgKGNsaWNrKT1cImFjY29yZGlhbihpKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtNCBmdy1ib2xkIHNlY3Rpb25cIiAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGU9PT0nY2hlY2tsaXN0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzZWN0aW9uLnNlY3Rpb25OYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzPVwibXgtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiBbbmdDbGFzc109XCJ7J3JvdGF0ZScgOiBzaG93ICE9PSBpfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNVwiIGhlaWdodD1cIjI1XCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01IDcuNUwxMCAxMi41TDE1IDcuNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvdz09PWlcIiBjbGFzcz1cInF1ZXN0aW9uLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjZGtEcm9wTGlzdCBbY2RrRHJvcExpc3REYXRhXT1cInNlY3Rpb24ucXVlc3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBxdWVzdGlvbiBvZiBzZWN0aW9uLnF1ZXN0aW9ucztsZXQgaj1pbmRleDtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IG15LTIgcS1idG5cIiBjZGtEcmFnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImxhYmVsXCIgWyhuZ01vZGVsKV09XCJxdWVzdGlvbi5jaGVja2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkUXVlc3Rpb24oJGV2ZW50LHNlY3Rpb24scXVlc3Rpb24pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyIG10LTIgbWUtNFwiIHR5cGU9XCJjaGVja2JveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0YWJsZWNvbnRlbnRcIiBbbmdDbGFzc109XCJxdWVzdGlvbj8uY2hlY2tlZCA/ICd2aWV3LWFsbCc6JydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3txdWVzdGlvbi5xbm99fSAuIHt7cXVlc3Rpb24ucW5hbWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPC9kaXY+ICAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbWJpbmVkQ2hlY2tsaXN0LmluY2x1ZGVzKHNlbGVjdClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWVuZCBtdC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy0yNSBtZS0zIGJ0bi1yZXNpemVcIiAoY2xpY2spPVwib25yZXNldCgpXCI+IFJlc2V0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTI1ICBidG4tcmVzaXplXCIgKGNsaWNrKT1cIm9udmlldygpXCI+QXBwbHk8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duc2VsZWN0IGgtOTAwcHggc2Nyb2xsLXlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1sZWZ0IFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdEFsbCA/ICdiYWNrZ3JvdW5kQm9yZGVyJzond2l0aG91dGJhY2tncm91bmQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXIgbWUtNFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdEFsbFwiIChjbGljayk9XCJzZWxlY3RBbGxTdG9yZSgkZXZlbnQpXCI+IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzZWxlY3RBbGwgPyAndXNhZ2UtZGV0ZWN0aW9uJzondXNhZ2UtdGV4dCdcIj5TZWxlY3QgQWxsPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gZHJvcGRvd25iZyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktNFwiICpuZ0Zvcj1cImxldCBsaXN0IG9mIG1vYmlsZXVzYWdlRGF0YUxpc3Q7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAoY2hhbmdlKT1cInVwZGF0ZUNoZWNrKCRldmVudCxsaXN0KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJsaXN0LmNoZWNrZWQgPyAnYmFja2dyb3VuZEJvcmRlcic6J3dpdGhvdXRiYWNrZ3JvdW5kJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwibGFiZWx7e2l9fVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlciBtZS00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBbKG5nTW9kZWwpXT1cImxpc3QuY2hlY2tlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImxhYmVse3tpfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImxpc3QuY2hlY2tlZCA/ICd1c2FnZS1kZXRlY3Rpb24nOid1c2FnZS10ZXh0J1wiPnt7bGlzdD8uc3RvcmVOYW1lfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IGRldGVjdGlvbnJpZ2h0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImxpc3QuZGV0ZWN0aW9uXCI+e3tsaXN0LmRldGVjdGlvbn19IERldGVjdGlvbnM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dzaWRlbmF2XCIgKGNsaWNrKT1cInNpZGVuYXYoKVwiIGNsYXNzPVwiYmFja0J1dHRvbnJpZ2h0IHRleHQtY2VudGVyIHB0LTEgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI4XCIgaGVpZ2h0PVwiMjhcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMSAxN0w2IDEyTDExIDdNMTggMTdMMTMgMTJMMTggN1wiIHN0cm9rZT1cIiMxMDE4MjhcIiBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJzaG93c2lkZW5hdiA/ICdjb2wtbWQtOCBib3JkZXIgYm9yZGVyLWJvdHRvbS0wIGJvcmRlci10b3AtMCBib3JkZXItbGVmdCBib3JkZXItNSByaWdodC1zaWRlYmFyJzonY29sLW1kLTEyJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgaC0xMDAwcHggc2Nyb2xsLXlcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0gKHNlbGVjdCA9PT0gJ2N1c3RvbScgfHwgc2VsZWN0ID09PSAndGFzayd8fHNlbGVjdCA9PT0gJ2NsZWFuaW5nJ3x8c2VsZWN0ID09PSdzY3J1bSd8fHNlbGVjdCA9PT0nc3RvcmVvcGVuYW5kY2xvc2UnfHxzZWxlY3QgPT09J2ludmVudG9yeWNvdW50J3x8c2VsZWN0ID09PSdjYXJzYXR0ZW5kZWQnfHxzZWxlY3QgPT09J251bWJlcnBsYXRlaW5mbycpIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wICBweC0wIG15LTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiKHNlbGVjdCA9PT0gJ2N1c3RvbScgfHwgc2VsZWN0ID09PSAndGFzaycgfHwgaGVhZGVyRmlsdGVycz8uY2xpZW50ID09PSAnNDUyJyB8fCBoZWFkZXJGaWx0ZXJzPy5jbGllbnQgPT09ICc0MzAnKSAmJiAhdmlld2xvYWRpbmcgJiYgIXZpZXdub0RhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDMgKm5nSWY9XCIhc2hvd3NpbmdsZSB8fCAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbyd8fCFhbGxhcHByb3ZhbFN0YXR1c1wiPjwvaDM+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgbS0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93c2luZ2xlJiYoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgIT09ICd0YW5nbycmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X1Rhc2tfaXNFZGl0JiZhbGxhcHByb3ZhbFN0YXR1c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwic2VsZWN0QWxsVGFza1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkQWxsVGFzaygkZXZlbnQsdmlld0NoZWNrbGlzdHNEYXRhPy5jaGVja2xpc3RBbnN3ZXJzWzBdLHZpZXdDaGVja2xpc3RzRGF0YT8uY2hlY2tsaXN0QW5zd2Vyc1swXS5xdWVzdGlvbkFuc3dlclswXS5xdWVzdGlvbnNbMF0sdmlld0NoZWNrbGlzdHNEYXRhPy5jaGVja2xpc3RBbnN3ZXJzWzBdPy5jaGVja2xpc3RJbmZvLHZpZXdDaGVja2xpc3RzRGF0YT8uY2hlY2tsaXN0QW5zd2Vyc1swXS5xdWVzdGlvbkFuc3dlclswXSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHZhbHVlPVwiXCIgaWQ9XCJmbGV4Q2hlY2tEZWZhdWx0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJtcy0yXCIgZm9yPVwiZmxleENoZWNrRGVmYXVsdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBBbGwgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZFJlY29yZENvdW50XCI+KHt7c2VsZWN0ZWRSZWNvcmRDb3VudH19IFJlY29yZHNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0ZWQpPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWUtNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dzaW5nbGUmJnNlbGVjdCA9PT0nY3VzdG9tJyYmKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlICE9PSAndGFuZ28nJiZ0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGUhPT0ndGFzaydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRVc2Vycy5sZW5ndGg+MHx8c2VsZWN0ZWRTdG9yZXMubGVuZ3RoPjBcIiBjbGFzcz1cImljb24tYnRuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY3JlYXRlTXVsdGlwbGVUYXNrKCd0YXNrJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjY2NTQgMS42Njc5N0g0Ljk5ODdDNC41NTY2NyAxLjY2Nzk3IDQuMTMyNzUgMS44NDM1NiAzLjgyMDE5IDIuMTU2MTJDMy41MDc2MyAyLjQ2ODY4IDMuMzMyMDMgMi44OTI2MSAzLjMzMjAzIDMuMzM0NjRWMTYuNjY4QzMuMzMyMDMgMTcuMTEgMy41MDc2MyAxNy41MzM5IDMuODIwMTkgMTcuODQ2NUM0LjEzMjc1IDE4LjE1OSA0LjU1NjY3IDE4LjMzNDYgNC45OTg3IDE4LjMzNDZIMTQuOTk4N0MxNS40NDA3IDE4LjMzNDYgMTUuODY0NiAxOC4xNTkgMTYuMTc3MiAxNy44NDY1QzE2LjQ4OTggMTcuNTMzOSAxNi42NjU0IDE3LjExIDE2LjY2NTQgMTYuNjY4VjYuNjY3OTdNMTEuNjY1NCAxLjY2Nzk3TDE2LjY2NTQgNi42Njc5N00xMS42NjU0IDEuNjY3OTdWNi42Njc5N0gxNi42NjU0TTkuOTk4NyAxNS4wMDEzVjEwLjAwMTNNNy40OTg3IDEyLjUwMTNIMTIuNDk4N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnRuLXRleHRcIj5DcmVhdGUgVGFzazwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93c2luZ2xlJiZzZWxlY3QgPT09J2N1c3RvbScmJihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSAhPT0ndGFuZ28nfHx0aGlzLnNlbGVjdCA9PT0gJ3Rhc2snJiZzaG93c2luZ2xlJiYoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgIT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRVc2Vycy5sZW5ndGg+MHx8c2VsZWN0ZWRTdG9yZXMubGVuZ3RoPjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjcmVhdGVNdWx0aXBsZVRhc2soJ3JlZG8nKVwiIGNsYXNzPVwiaWNvbi1idG5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMjAgMThcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOS4xNjU0IDIuMzM1MjdWNy4zMzUyN00xOS4xNjU0IDcuMzM1MjdIMTQuMTY1NE0xOS4xNjU0IDcuMzM1MjdMMTUuMjk4NyAzLjcwMTkzQzE0LjQwMzEgMi44MDU4NiAxMy4yOTUxIDIuMTUxMjcgMTIuMDc4IDEuNzk5MjVDMTAuODYxIDEuNDQ3MjIgOS41NzQ2MiAxLjQwOTIzIDguMzM4OTQgMS42ODg4MkM3LjEwMzI1IDEuOTY4NDEgNS45NTg1MyAyLjU1NjQ2IDUuMDExNTkgMy4zOTgxMkM0LjA2NDY0IDQuMjM5NzcgMy4zNDYzNCA1LjMwNzU5IDIuOTIzNyA2LjUwMTkzTTAuODMyMDMxIDE1LjY2ODZWMTAuNjY4Nk0wLjgzMjAzMSAxMC42Njg2SDUuODMyMDNNMC44MzIwMzEgMTAuNjY4Nkw0LjY5ODcgMTQuMzAxOUM1LjU5NDMyIDE1LjE5OCA2LjcwMjM0IDE1Ljg1MjYgNy45MTkzNyAxNi4yMDQ2QzkuMTM2NCAxNi41NTY3IDEwLjQyMjggMTYuNTk0NiAxMS42NTg1IDE2LjMxNTFDMTIuODk0MSAxNi4wMzU1IDE0LjAzODkgMTUuNDQ3NCAxNC45ODU4IDE0LjYwNThDMTUuOTMyOCAxMy43NjQxIDE2LjY1MTEgMTIuNjk2MyAxNy4wNzM3IDExLjUwMTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ0bi10ZXh0XCI+UmVkbzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd3NpbmdsZSYmc2VsZWN0ID09PSdjdXN0b20nJiYoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgIT09J3RhbmdvJ3x8dGhpcy5zZWxlY3QgPT09ICd0YXNrJyYmc2hvd3NpbmdsZSYmKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlICE9PSAndGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkVXNlcnMubGVuZ3RoPjB8fHNlbGVjdGVkU3RvcmVzLmxlbmd0aD4wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZXhwb3J0RGV0KCRldmVudClcIiBjbGFzcz1cImljb24tYnRuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbjxwYXRoIGQ9XCJNOC4xMjUgMTMuMTI1SDE2LjM1NjJMMTQuNzQzOCAxNC43NDM4TDE1LjYyNSAxNS42MjVMMTguNzUgMTIuNUwxNS42MjUgOS4zNzVMMTQuNzQzOCAxMC4yNTYyTDE2LjM1NjIgMTEuODc1SDguMTI1VjEzLjEyNVpcIiBmaWxsPVwiYmxhY2tcIi8+XHJcbjxwYXRoIGQ9XCJNMTMuNzUgOC43NTAwMVY2LjI1MDAxQzEzLjc1MDUgNi4xNjc3NiAxMy43MzQ3IDYuMDg2MjIgMTMuNzAzNiA2LjAxMDA3QzEzLjY3MjUgNS45MzM5MiAxMy42MjY3IDUuODY0NjYgMTMuNTY4OCA1LjgwNjI2TDkuMTkzNzUgMS40MzEyNkM5LjEzNTM1IDEuMzczMzMgOS4wNjYwOSAxLjMyNzUxIDguOTg5OTQgMS4yOTY0QzguOTEzNzkgMS4yNjUzIDguODMyMjUgMS4yNDk1MyA4Ljc1IDEuMjUwMDFIMi41QzIuMTY4NDggMS4yNTAwMSAxLjg1MDU0IDEuMzgxNzEgMS42MTYxMiAxLjYxNjEzQzEuMzgxNyAxLjg1MDU1IDEuMjUgMi4xNjg0OSAxLjI1IDIuNTAwMDFWMTcuNUMxLjI1IDE3LjgzMTUgMS4zODE3IDE4LjE0OTUgMS42MTYxMiAxOC4zODM5QzEuODUwNTQgMTguNjE4MyAyLjE2ODQ4IDE4Ljc1IDIuNSAxOC43NUgxMi41QzEyLjgzMTUgMTguNzUgMTMuMTQ5NSAxOC42MTgzIDEzLjM4MzkgMTguMzgzOUMxMy42MTgzIDE4LjE0OTUgMTMuNzUgMTcuODMxNSAxMy43NSAxNy41VjE2LjI1SDEyLjVWMTcuNUgyLjVWMi41MDAwMUg3LjVWNi4yNTAwMUM3LjUgNi41ODE1MyA3LjYzMTcgNi44OTk0NyA3Ljg2NjEyIDcuMTMzODlDOC4xMDA1NCA3LjM2ODMxIDguNDE4NDggNy41MDAwMSA4Ljc1IDcuNTAwMDFIMTIuNVY4Ljc1MDAxSDEzLjc1Wk04Ljc1IDYuMjUwMDFWMi43NTYyNkwxMi4yNDM4IDYuMjUwMDFIOC43NVpcIiBmaWxsPVwiYmxhY2tcIi8+XHJcbjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnRuLXRleHRcIj5FeHBvcnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXhwb3J0U2hvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYXJkIHB5LTIgIHBvc2l0aW9uLWFic29sdXRlIHByb2R1Y3Rkcm9wIHRvcC0xMCB3LTE1MHB4IGVuZC0wIHotMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBweS00IGNoZWNrYm94LWxhYmVsIG14LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwZGZFeHBvcnRUeXBlcy5pbmNsdWRlcyhzZWxlY3QpXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0RXhwb3J0QXNQUFQoJ0V4cG9ydCBhcyBQREYnLCdwZGYnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhwb3J0IGFzIFBERlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCIgY3Vyc29yLXBvaW50ZXIgY2hlY2tib3gtbGFiZWwgcHktNCBteC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3N2RXhwb3J0VHlwZXMuaW5jbHVkZXMoc2VsZWN0KVwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldEV4cG9ydEFzUFBUKCdFeHBvcnQgYXMgQ1NWJywnY3N2JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4cG9ydCBhcyBDU1ZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSB8fHNlbGVjdCA9PT0gJ2NsZWFuaW5nJ3x8c2VsZWN0ID09PSdzY3J1bSd8fHNlbGVjdCA9PT0nc3RvcmVvcGVuYW5kY2xvc2UnfHxzZWxlY3QgPT09J2ludmVudG9yeWNvdW50J3x8c2VsZWN0ID09PSdjYXJzYXR0ZW5kZWQnfHxzZWxlY3QgPT09J251bWJlcnBsYXRlaW5mbycgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cInNlbGVjdGVkU2VjdGlvbi5sZW5ndGggPjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIgY3Vyc29yLXBvaW50ZXIgY2hlY2tib3gtbGFiZWwgcHktNCAgbXgtMlwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldEV4cG9ydEFzUFBUKCdFeHBvcnQgYXMgUFBUJywncHB0JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4cG9ydCBhcyBQUFRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSB8fHNlbGVjdCA9PT0gJ2NsZWFuaW5nJ3x8c2VsZWN0ID09PSdzY3J1bSd8fHNlbGVjdCA9PT0nc3RvcmVvcGVuYW5kY2xvc2UnIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJzZWxlY3RlZFNlY3Rpb24ubGVuZ3RoID4wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgY2hlY2tib3gtbGFiZWwgcHktNCBteC0yXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0RXhwb3J0QXNQUFQoJ0V4cG9ydCBhcyBaSVAnLCd6aXBmaWxlcycpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHBvcnQgYXMgWklQXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIGN1cnNvci1wb2ludGVyIG1lLTEwXCIgKm5nSWY9XCIhZ2FsbGVyeUZvcm0udmFsdWUudmlld1JlZG8mJnNlbGVjdGVkVXNlcnMubGVuZ3RoPT09MCYmc2VsZWN0ZWRTdG9yZXMubGVuZ3RoPT09MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiBidG4gYnRuLXByaW1hcnkgZm9ybS1jb250cm9sIG5vLXRleHQtdHJhbnNmb3JtXCIgKGNsaWNrKT1cImV4cG9ydERldCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZXhwb3J0TGFiZWwgfX0gPCEtLSBCaW5kIGxhYmVsIHRleHQgaGVyZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImV4cG9ydFNob3dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FyZCBweS0yICBwb3NpdGlvbi1hYnNvbHV0ZSBwcm9kdWN0ZHJvcCB0b3AtMTAgdy0xNTBweCBlbmQtMCB6LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LXVuc3R5bGVkIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgcHktNCBjaGVja2JveC1sYWJlbCBteC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicGRmRXhwb3J0VHlwZXMuaW5jbHVkZXMoc2VsZWN0KVwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldEV4cG9ydEFzUFBUKCdFeHBvcnQgYXMgUERGJywncGRmJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4cG9ydCBhcyBQREZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiIGN1cnNvci1wb2ludGVyIGNoZWNrYm94LWxhYmVsIHB5LTQgbXgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNzdkV4cG9ydFR5cGVzLmluY2x1ZGVzKHNlbGVjdClcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRFeHBvcnRBc1BQVCgnRXhwb3J0IGFzIENTVicsJ2NzdicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHBvcnQgYXMgQ1NWXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gfHxzZWxlY3QgPT09ICdjbGVhbmluZyd8fHNlbGVjdCA9PT0nc2NydW0nfHxzZWxlY3QgPT09J3N0b3Jlb3BlbmFuZGNsb3NlJ3x8c2VsZWN0ID09PSdpbnZlbnRvcnljb3VudCd8fHNlbGVjdCA9PT0nY2Fyc2F0dGVuZGVkJ3x8c2VsZWN0ID09PSdudW1iZXJwbGF0ZWluZm8nIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJzZWxlY3RlZFNlY3Rpb24ubGVuZ3RoID4wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiIGN1cnNvci1wb2ludGVyIGNoZWNrYm94LWxhYmVsIHB5LTQgIG14LTJcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRFeHBvcnRBc1BQVCgnRXhwb3J0IGFzIFBQVCcsJ3BwdCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHBvcnQgYXMgUFBUXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gfHxzZWxlY3QgPT09ICdjbGVhbmluZyd8fHNlbGVjdCA9PT0nc2NydW0nfHxzZWxlY3QgPT09J3N0b3Jlb3BlbmFuZGNsb3NlJyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0lmPVwic2VsZWN0ZWRTZWN0aW9uLmxlbmd0aCA+MFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIGNoZWNrYm94LWxhYmVsIHB5LTQgbXgtMlwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldEV4cG9ydEFzUFBUKCdFeHBvcnQgYXMgWklQJywnemlwZmlsZXMnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhwb3J0IGFzIFpJUFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidmlld2xvYWRpbmdcIiBjbGFzcz1cInJvdyBsb2FkZXIgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInZpZXdub0RhdGEmJnNlbGVjdCAhPT0gJ2N1c3RvbScmJnNlbGVjdCAhPT0gJ3Rhc2snXCIgY2xhc3M9XCJyb3cgbXQtMjBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbXQtMjAgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYXJkLWJvZHkgbXQtMjAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctc3JjIG10LTUgdy00MFwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTIuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtdGl0bGVcIj5ObyBEZXRlY3Rpb25zIGZvdW5kPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtc3ViXCI+VGhlcmUgaXMgbm8gYnJlYWNoZXMgZm9yIHRoZSBzZWxlY3RlZCBwZXJpb2Q8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInZpZXdub0RhdGEmJnNlbGVjdCA9PT0gJ2N1c3RvbScgfHwgdmlld25vRGF0YSYmc2VsZWN0ID09PSAndGFzaydcIiBjbGFzcz1cInJvdyBtdC0yMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBtdC0yMCBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNhcmQtYm9keSBtdC0yMCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1zcmMgbXQtNSB3LTQwXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhMS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS10aXRsZVwiPk5vIGRhdGEgZm91bmQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS1zdWJcIj5UaGVyZSBpcyBubyByZXN1bHQgZm9yIHRoaXMgY2hlY2tsaXN0PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwiIXZpZXdsb2FkaW5nICYmICF2aWV3bm9EYXRhXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0PT09J2N1c3RvbSd8fHNlbGVjdD09PSd0YXNrJyBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd3NpbmdsZVwiIGNsYXNzPVwicWEtaGVhZGluZyBtLTMgbXgtMTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0aGlzLnNlbGVjdGVkU2VjdGlvblswXT8ucXVlc3Rpb25zWzBdfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd3NpbmdsZSYmc2hvd2ZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2IG5hdi1zdHJldGNoIG5hdi1saW5lLXRhYnMxIG5hdi1saW5lLXRhYnMgYm9yZGVyLXRyYW5zcGFyZW50IGZsZXgtbm93cmFwIG14LTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFuc3dlckZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJ0YXNrVGFiKGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVyID09PSBpdGVtLmtleSA/ICdhY3RpdmUnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rIGN1cnNvci1wb2ludGVyIG5vLWJvcmRlciBtZS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5rZXl9fTxzcGFuIGNsYXNzPVwibXgtMiBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZ2FsbGVyeUZvcm0udmFsdWUuZmlsdGVyID09PSBpdGVtLmtleSA/ICdiYWRnZS1udW0tcHJpbWFyeScgOidiYWRnZS1udW0tbXV0ZWQnXCI+e3tpdGVtLmNvdW50fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjaGVja2xpc3Qgb2Ygdmlld0NoZWNrbGlzdHNEYXRhPy5jaGVja2xpc3RBbnN3ZXJzXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIiAqbmdJZj1cImNsaWVudERhdGEubG9nbyYmY2xpZW50RGF0YS5sb2dvIT09JycmJnNob3dtdWx0aVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIm10LTUgbWItMyB0ZXh0LWNlbnRlciBpY29uc2l6ZVwiIHNyYz1cInt7Y2xpZW50RGF0YS5sb2dvfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC0xMCBtdC01XCIgKm5nSWY9XCJzaG93bXVsdGlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPlN0b3JlIE5hbWU6PC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj57e2NoZWNrbGlzdD8uc3RvcmVQcm9maWxlPy5zdG9yZU5hbWV9fSA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZT09PSdjaGVja2xpc3QnXCI+Q2hlY2tsaXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU6PC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIiAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGU9PT0ndGFzaydcIj5UYXNrIE5hbWU6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+e3tjaGVja2xpc3Q/LmNoZWNrbGlzdEluZm8/LmNoZWNrbGlzdE5hbWV9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPlN0YXRlICYgQ291bnRyeSA6PC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj57e2NoZWNrbGlzdD8uc3RvcmVQcm9maWxlPy5zdGF0ZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NoZWNrbGlzdD8uc3RvcmVQcm9maWxlPy5Db3VudHJ5fX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkR1cmF0aW9uIDo8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInVuaS1zdWJ0aXRsZVwiPiB7e2NoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbz8uZHVyYXRpb259fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+Tm8uIG9mIFF1ZXN0aW9ucyA6PC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj57e2NoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbz8ubm9vZlF1ZXN0aW9uc319PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIj5EYXRlIDo8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInVuaS1zdWJ0aXRsZVwiPiB7e2NoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbz8uZGF0ZX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIj5TdWJtaXR0ZWQgQnkgOjwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+e3tjaGVja2xpc3Q/LmNoZWNrbGlzdEluZm8/LnN1Ym1pdHRlZEJ5fX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPlRpbWUgOjwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+IHt7Y2hlY2tsaXN0Py5jaGVja2xpc3RJbmZvPy50aW1lfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2YgY2hlY2tsaXN0LnF1ZXN0aW9uQW5zd2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInFhLWJvZHJlciBteS01XCIgKm5nRm9yPVwibGV0IHF1ZXN0aW9uIG9mIHNlY3Rpb24ucXVlc3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cInF1ZXN0aW9uLnJlZG98fHF1ZXN0aW9uLnJlZG89PT1mYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZpZXctZGV0YWlsIGNvbC0xMiB0ZXh0LWVuZCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlZpZXdJbkRldGFpbHMocXVlc3Rpb24sY2hlY2tsaXN0Py5jaGVja2xpc3RJbmZvLGNoZWNrbGlzdD8uc3RvcmVQcm9maWxlLHNlY3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlldyBpbiBkZXRhaWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTUgMTAuODMzM1YxNS44MzMzQzE1IDE2LjI3NTQgMTQuODI0NCAxNi42OTkzIDE0LjUxMTggMTcuMDExOEMxNC4xOTkzIDE3LjMyNDQgMTMuNzc1NCAxNy41IDEzLjMzMzMgMTcuNUg0LjE2NjY3QzMuNzI0NjQgMTcuNSAzLjMwMDcyIDE3LjMyNDQgMi45ODgxNiAxNy4wMTE4QzIuNjc1NTkgMTYuNjk5MyAyLjUgMTYuMjc1NCAyLjUgMTUuODMzM1Y2LjY2NjY3QzIuNSA2LjIyNDY0IDIuNjc1NTkgNS44MDA3MiAyLjk4ODE2IDUuNDg4MTZDMy4zMDA3MiA1LjE3NTU5IDMuNzI0NjQgNSA0LjE2NjY3IDVIOS4xNjY2N00xMi41IDIuNUgxNy41TTE3LjUgMi41VjcuNU0xNy41IDIuNUw4LjMzMzMzIDExLjY2NjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyB3LTEwMCBtLTNcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTFcIiBzdHlsZT1cIndpZHRoOjMuMzMzMyVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd3NpbmdsZSYmKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlICE9PSAndGFuZ28nJiYhY2hlY2tsaXN0Py5jaGVja2xpc3RJbmZvPy5hcHByb3ZhbFN0YXR1cyYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfVGFza19pc0VkaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJsYWJlbFwiIFsobmdNb2RlbCldPVwicXVlc3Rpb24uY2hlY2tlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJxdWVzdGlvbi5yZWRvJiZxdWVzdGlvbi50YXNrXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdG11bHRpVGFzaygkZXZlbnQsY2hlY2tsaXN0LHF1ZXN0aW9uLGNoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbyxzZWN0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlciBtdC0yIG1lLTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zIHRleHQtdGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd3NpbmdsZSYmZ2FsbGVyeUZvcm0uZ2V0KCdmaWx0ZXJ0eXBlJyk/LnZhbHVlID09PSdDbHVzdGVycydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NoZWNrbGlzdD8uc3RvcmVQcm9maWxlPy5zdG9yZU5hbWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgdGV4dC10aXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93c2luZ2xlJiZnYWxsZXJ5Rm9ybS5nZXQoJ2ZpbHRlcnR5cGUnKT8udmFsdWUgPT09J1RlYW1zJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y2hlY2tsaXN0Py5zdG9yZVByb2ZpbGU/LnVzZXJOYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC04IHRleHQtZW5kIHRpdGxlLWRlc2NyaXB0aW9uXCIgKm5nSWY9XCJzaG93c2luZ2xlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3VibWl0dGVkIGJ5IDoge3tjaGVja2xpc3Q/LmNoZWNrbGlzdEluZm8/LnN1Ym1pdHRlZEJ5fX0gT24gOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y2hlY2tsaXN0Py5jaGVja2xpc3RJbmZvPy5kYXRlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbz8udGltZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cInNob3dtdWx0aVwiIGNsYXNzPVwicWEtaGVhZGluZ1wiPnt7cXVlc3Rpb24/LnFub319LlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cXVlc3Rpb24/LnFuYW1lfX08L2xpPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJQYXJ0aWFsbHkgbXktMyBweC01XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uPy5hbnN3ZXJUeXBlPT09J2Rlc2NyaXB0aXZlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlc3Rpb24udXNlckFuc3dlcjtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIGhhc011bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pOyBlbHNlIG5vTXVsdGlJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlJlZmVyZW5jZSBJbWFnZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiBnZXRHcmlkQ29sdW1ucyhxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UubGVuZ3RoKSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHF1ZXN0aW9uLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtdGlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc1ZhbGlkSW1hZ2UoaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk11bHRpSW1hZ2VQb3B1cChnZXRNdWx0aVJlZkltYWdlVXJscyhxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UpLGdldFJlZkltYWdlTmFtZXMocXVlc3Rpb24ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlKSxpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW0uaW1hZ2VVUkxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJSZWZlcmVuY2UgaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub011bHRpSW1hZ2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgICYmIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgIT09ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlJlZmVyZW5jZSBJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtdGlsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctbG9nbyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cDEoZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UsMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ3Rhc2snICYmIGhhc1F1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlJlZmVyZW5jZSBJbWFnZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiBnZXRHcmlkQ29sdW1ucyhxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlLmxlbmd0aCkgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS10aWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzVmFsaWRJbWFnZShpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cChnZXRSZWZJbWFnZVVybHMocXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSksZ2V0UmVmSW1hZ2VOYW1lcyhxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlKSxpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJSZWZlcmVuY2UgaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXQtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLnNvcEZsYWcgPyAnZmxhZ2Nsb3VyJzonJ1wiPnt7aXRlbS5hbnN3ZXJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbWFya3NUeHRcIiAqbmdJZj1cInF1ZXN0aW9uLnJlbWFya3MhPT0nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtYXJrcyA6IHt7cXVlc3Rpb24ucmVtYXJrc319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiUGFydGlhbGx5IG15LTMgcHgtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbj8uYW5zd2VyVHlwZT09PSdsaW5lYXJzY2FsZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIHF1ZXN0aW9uLnVzZXJBbnN3ZXI7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzTXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbikgfHwgKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgIT09ICcnICYmIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgIT09IG51bGwpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0JyAmJiBoYXNNdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKTsgZWxzZSBub011bHRpSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5SZWZlcmVuY2UgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJzogZ2V0R3JpZENvbHVtbnMocXVlc3Rpb24ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlLmxlbmd0aCkgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2U7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNWYWxpZEltYWdlKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5NdWx0aUltYWdlUG9wdXAoZ2V0TXVsdGlSZWZJbWFnZVVybHMocXVlc3Rpb24ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKHF1ZXN0aW9uLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZSksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtLmltYWdlVVJMXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUmVmZXJlbmNlIGltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9NdWx0aUltYWdlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlPT09J2NoZWNrbGlzdCcgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0gJycgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0gbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5SZWZlcmVuY2UgSW1hZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctbG9nbyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAxKGVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlLDApXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cInt7ZW52aXJvbm1lbnQuVHJheEFuc3dlckNETn19e3txdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFF1ZXN0aW9uIFJlZmVyZW5jZSBJbWFnZXMgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAndGFzaycgJiYgaGFzUXVlc3Rpb25SZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+UmVmZXJlbmNlIEltYWdlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtZ3JpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyc6IGdldEdyaWRDb2x1bW5zKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UubGVuZ3RoKSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2U7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNWYWxpZEltYWdlKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5JbWFnZVBvcHVwKGdldFJlZkltYWdlVXJscyhxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UpLGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlJlZmVyZW5jZSBpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxicj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXQtNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLnNvcEZsYWcgPyAnZmxhZ2Nsb3VyJzonJ1wiPnt7aXRlbS5hbnN3ZXJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbWFya3NUeHRcIiAqbmdJZj1cInF1ZXN0aW9uLnJlbWFya3MhPT0nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtYXJrcyA6IHt7cXVlc3Rpb24ucmVtYXJrc319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiUGFydGlhbGx5IG15LTMgcHgtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbj8uYW5zd2VyVHlwZT09PSd0aW1lJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlc3Rpb24udXNlckFuc3dlcjtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNNdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKSB8fCAocXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAmJiBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlICE9PSAnJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIGhhc011bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pOyBlbHNlIG5vTXVsdGlJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlJlZmVyZW5jZSBJbWFnZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiBnZXRHcmlkQ29sdW1ucyhxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UubGVuZ3RoKSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHF1ZXN0aW9uLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtdGlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc1ZhbGlkSW1hZ2UoaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk11bHRpSW1hZ2VQb3B1cChnZXRNdWx0aVJlZkltYWdlVXJscyhxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UpLGdldFJlZkltYWdlTmFtZXMocXVlc3Rpb24ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlKSxpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW0uaW1hZ2VVUkxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJSZWZlcmVuY2UgaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub011bHRpSW1hZ2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0gJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+UmVmZXJlbmNlIEltYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyc6IGdldEdyaWRDb2x1bW5zKDEpIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAxKGVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlLDApXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ3Rhc2snICYmIGhhc1F1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlJlZmVyZW5jZSBJbWFnZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiBnZXRHcmlkQ29sdW1ucyhxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlLmxlbmd0aCkgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS10aWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzVmFsaWRJbWFnZShpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cChnZXRSZWZJbWFnZVVybHMocXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSksZ2V0UmVmSW1hZ2VOYW1lcyhxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlKSxpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJSZWZlcmVuY2UgaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm10LTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5zb3BGbGFnID8gJ2ZsYWdjbG91cic6JydcIj57e2l0ZW0uYW5zd2VyfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZW1hcmtzVHh0XCIgKm5nSWY9XCJxdWVzdGlvbi5yZW1hcmtzIT09JydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbWFya3MgOiB7e3F1ZXN0aW9uLnJlbWFya3N9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlBhcnRpYWxseSBteS0zIHB4LTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24/LmFuc3dlclR5cGU9PT0nZGF0ZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIHF1ZXN0aW9uLnVzZXJBbnN3ZXI7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzTXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbikgfHwgKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0gJycpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0JyAmJiBoYXNNdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKTsgZWxzZSBub011bHRpSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5SZWZlcmVuY2UgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJzogZ2V0R3JpZENvbHVtbnMocXVlc3Rpb24ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlLmxlbmd0aCkgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2U7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNWYWxpZEltYWdlKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5NdWx0aUltYWdlUG9wdXAoZ2V0TXVsdGlSZWZJbWFnZVVybHMocXVlc3Rpb24ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKHF1ZXN0aW9uLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZSksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtLmltYWdlVVJMXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUmVmZXJlbmNlIGltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9NdWx0aUltYWdlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlPT09J2NoZWNrbGlzdCcgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0gJycgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0gbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5SZWZlcmVuY2UgSW1hZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctbG9nbyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAxKGVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlLDApXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cInt7ZW52aXJvbm1lbnQuVHJheEFuc3dlckNETn19e3txdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAndGFzaycgJiYgaGFzUXVlc3Rpb25SZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+UmVmZXJlbmNlIEltYWdlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtZ3JpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyc6IGdldEdyaWRDb2x1bW5zKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UubGVuZ3RoKSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2U7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNWYWxpZEltYWdlKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5JbWFnZVBvcHVwKGdldFJlZkltYWdlVXJscyhxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UpLGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlJlZmVyZW5jZSBpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXQtNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLnNvcEZsYWcgPyAnZmxhZ2Nsb3VyJzonJ1wiPnt7aXRlbS5hbnN3ZXJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbWFya3NUeHRcIiAqbmdJZj1cInF1ZXN0aW9uLnJlbWFya3MhPT0nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtYXJrcyA6IHt7cXVlc3Rpb24ucmVtYXJrc319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiUGFydGlhbGx5IG15LTMgcHgtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbj8uYW5zd2VyVHlwZT09PSd5ZXMvbm8nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi51c2VyQW5zd2VyO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIChoYXNNdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKSB8fCAocXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAmJiBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlICE9PSAnJykpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0JyAmJiBoYXNNdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKTsgZWxzZSBub011bHRpSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5SZWZlcmVuY2UgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJzogZ2V0R3JpZENvbHVtbnMocXVlc3Rpb24ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlLmxlbmd0aCkgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2U7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNWYWxpZEltYWdlKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5NdWx0aUltYWdlUG9wdXAoZ2V0TXVsdGlSZWZJbWFnZVVybHMocXVlc3Rpb24ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKHF1ZXN0aW9uLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZSksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtLmltYWdlVVJMXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUmVmZXJlbmNlIGltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9NdWx0aUltYWdlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlPT09J2NoZWNrbGlzdCcgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0nJyAmJiBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlICE9PSBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlJlZmVyZW5jZSBJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1sb2dvIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cDEoZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UsMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwie3tlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROfX17e3F1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2V9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZT09PSdjaGVja2xpc3QnICYmIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgIT09JycgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0gbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAndGFzaydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gUXVlc3Rpb24gUmVmZXJlbmNlIEltYWdlcyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICd0YXNrJyAmJiBoYXNRdWVzdGlvblJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5SZWZlcmVuY2UgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJzogZ2V0R3JpZENvbHVtbnMocXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZS5sZW5ndGgpIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtdGlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc1ZhbGlkSW1hZ2UoaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAoZ2V0UmVmSW1hZ2VVcmxzKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UpLGdldFJlZkltYWdlTmFtZXMocXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUmVmZXJlbmNlIGltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXQtNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLnNvcEZsYWcgPyAnZmxhZ2Nsb3VyJzonJ1wiPnt7aXRlbS5hbnN3ZXJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0udmFsaWRhdGlvbiAmJiBpdGVtLnZhbGlkYXRpb25BbnN3ZXIhPT0nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIChoYXNNdWx0aVJlZmVyZW5jZUltYWdlcyhpdGVtKSB8fCAoaXRlbT8ucmVmZXJlbmNlSW1hZ2UgJiYgKGl0ZW0ucmVmZXJlbmNlSW1hZ2UubGVuZ3RoID4gMCB8fCBpdGVtLnJlZmVyZW5jZUltYWdlICE9PSAnJykpKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0JyAmJiBoYXNNdWx0aVJlZmVyZW5jZUltYWdlcyhpdGVtKTsgZWxzZSBub011bHRpSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+UmVmZXJlbmNlIEltYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyc6IGdldEdyaWRDb2x1bW5zKGl0ZW0ubXVsdGlSZWZlcmVuY2VJbWFnZS5sZW5ndGgpIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcmVmZkl0ZW0gb2YgaXRlbS5tdWx0aVJlZmVyZW5jZUltYWdlO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtdGlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNWYWxpZEltYWdlKHJlZmZJdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5NdWx0aUltYWdlUG9wdXAoZ2V0TXVsdGlSZWZJbWFnZVVybHMoaXRlbS5tdWx0aVJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKGl0ZW0ubXVsdGlSZWZlcmVuY2VJbWFnZSksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgcmVmZkl0ZW0uaW1hZ2VVUkxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUmVmZXJlbmNlIGltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub011bHRpSW1hZ2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5yZWZlcmVuY2VJbWFnZSAmJiBpdGVtLnJlZmVyZW5jZUltYWdlIT09JydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlJlZmVyZW5jZSBJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLWxvZ28gY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cDEoZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW0ucmVmZXJlbmNlSW1hZ2UsMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cInt7ZW52aXJvbm1lbnQuVHJheEFuc3dlckNETn19e3tpdGVtLnJlZmVyZW5jZUltYWdlfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS52YWxpZGF0aW9uVHlwZT09PSdDYXB0dXJlIEltYWdlJz8nY29sLW1kLTYnOidjb2wtbWQtMTInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS52YWxpZGF0aW9uVHlwZT09PSdDYXB0dXJlIEltYWdlJ3x8aXRlbS52YWxpZGF0aW9uVHlwZT09PSdDYXB0dXJlIFZpZGVvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5WYWxpZGF0aW9uIEFuc3dlciA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNoZWNrRGV0ZWN0aW9uU3RhdHVzKHF1ZXN0aW9uLnVzZXJBbnN3ZXI/LlswXT8ucnVuQUlEYXRhKS5rZXlQcmVzZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjaGVja0RldGVjdGlvblN0YXR1cyhxdWVzdGlvbi51c2VyQW5zd2VyPy5bMF0/LnJ1bkFJRGF0YSkua2V5VmFsdWUgPyAnYmdTdWNjZXNzJyA6ICdiZ0RhbmdlcidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRGV0ZWN0aW9uU3RhdHVzKHF1ZXN0aW9uLnVzZXJBbnN3ZXI/LlswXT8ucnVuQUlEYXRhKS5rZXlWYWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ01hdGNoZWQnIDogJ05vdCBNYXRjaGVkJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8aW1nIGNsYXNzPVwiaW1nLWxvZ28gY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAxKGVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtLnZhbGlkYXRpb25BbnN3ZXIsMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0udmFsaWRhdGlvblR5cGU9PT0nQ2FwdHVyZSBJbWFnZSdcIiBzcmM9XCJ7e2Vudmlyb25tZW50LlRyYXhBbnN3ZXJDRE59fXt7aXRlbS52YWxpZGF0aW9uQW5zd2VyfX1cIiBhbHQ9XCJcIj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctbG9nbyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAxKChpdGVtLnJ1bkFJQW5zd2VyKSA/IGVudmlyb25tZW50LnRyYXhSdW5BaUNETiArIGl0ZW0ucnVuQUlBbnN3ZXIgOiBlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbS52YWxpZGF0aW9uQW5zd2VyLDApXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS52YWxpZGF0aW9uVHlwZT09PSdDYXB0dXJlIEltYWdlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIihpdGVtLnJ1bkFJQW5zd2VyKSA/IGVudmlyb25tZW50LnRyYXhSdW5BaUNETiArIGl0ZW0ucnVuQUlBbnN3ZXIgOiBlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbS52YWxpZGF0aW9uQW5zd2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZSB3LTEwMCBoLTQ1MHB4IHAtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS52YWxpZGF0aW9uVHlwZSA9PT0gJ0NhcHR1cmUgVmlkZW8nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2aWRlbyBjb250cm9scyBjbGFzcz1cInctMTAwIGgtMTAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW0udmFsaWRhdGlvbkFuc3dlclwiPjwvdmlkZW8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSB0b3AtMCBlbmQtMCBtLTMgY3Vyc29yLXBvaW50ZXJcIj48c3ZnIChjbGljayk9XCJkb3dubG9hZFZpZGVvKGl0ZW0uYW5zd2VyKVwiIHRpdGxlPVwiRG93bmxvYWQgVmlkZW9cIiBpZD1cImRvd25sb2FkLWljb25cIiB3aWR0aD1cIjQ0XCIgaGVpZ2h0PVwiNDRcIiB2aWV3Qm94PVwiMCAwIDQ0IDQ0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJpY29uLW92ZXJsYXlcIj48ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8zODIyXzE5NDc5KVwiPjxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIi8+PHJlY3QgeD1cIjIuNVwiIHk9XCIxLjVcIiB3aWR0aD1cIjM5XCIgaGVpZ2h0PVwiMzlcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiNEMEQ1RERcIi8+PHBhdGggZD1cIk0yOS41IDIzLjVWMjYuODMzM0MyOS41IDI3LjI3NTQgMjkuMzI0NCAyNy42OTkzIDI5LjAxMTggMjguMDExOEMyOC42OTkzIDI4LjMyNDQgMjguMjc1NCAyOC41IDI3LjgzMzMgMjguNUgxNi4xNjY3QzE1LjcyNDYgMjguNSAxNS4zMDA3IDI4LjMyNDQgMTQuOTg4MiAyOC4wMTE4QzE0LjY3NTYgMjcuNjk5MyAxNC41IDI3LjI3NTQgMTQuNSAyNi44MzMzVjIzLjVNMTcuODMzMyAxOS4zMzMzTDIyIDIzLjVNMjIgMjMuNUwyNi4xNjY3IDE5LjMzMzNNMjIgMjMuNVYxMy41XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9nPjxkZWZzPjxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMzgyMl8xOTQ3OVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQ0XCIgaGVpZ2h0PVwiNDRcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIvPjxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+PGZlT2Zmc2V0IGR5PVwiMVwiLz48ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMVwiLz48ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIi8+PGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18zODIyXzE5NDc5XCIvPjxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMzgyMl8xOTQ3OVwiIHJlc3VsdD1cInNoYXBlXCIvPjwvZmlsdGVyPjwvZGVmcz48L3N2Zz48L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlbWFya3NUeHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS52YWxpZGF0aW9uVHlwZT09PSdEZXNjcmlwdGl2ZSBBbnN3ZXInXCI+VmFsaWRhdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFuc3dlciA6e3tpdGVtLnZhbGlkYXRpb25BbnN3ZXJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZW1hcmtzVHh0XCIgKm5nSWY9XCJxdWVzdGlvbi5yZW1hcmtzIT09JydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbWFya3MgOiB7e3F1ZXN0aW9uLnJlbWFya3N9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5ydW5BSURhdGE/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbWFya3NUeHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhaURhdGFJdGVtIG9mIHF1ZXN0aW9uLnVzZXJBbnN3ZXI/LlswXT8ucnVuQUlEYXRhXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhaURhdGFJdGVtPy5sYWJsZU5hbWUgIT09ICdkZXRlY3Rpb25TdGF0dXMnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiPnt7YWlEYXRhSXRlbS5sYWJsZU5hbWV9fSA6PC9iPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2FpRGF0YUl0ZW0udmFsdWU/LnRvU3RyaW5nKCk/LnBhZFN0YXJ0KDIsJzAnKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlBhcnRpYWxseSBteS0zIHB4LTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24/LmFuc3dlclR5cGU9PT0nbXVsdGlwbGVjaG9pY2VzaW5nbGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0JyAmJiAoaGFzTXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbikgfHwgKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0gJycpKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIGhhc011bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pOyBlbHNlIG5vTXVsdGlJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+UmVmZXJlbmNlIEltYWdlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiBnZXRHcmlkQ29sdW1ucyhxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UubGVuZ3RoKSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2U7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtdGlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzVmFsaWRJbWFnZShpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk11bHRpSW1hZ2VQb3B1cChnZXRNdWx0aVJlZkltYWdlVXJscyhxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UpLGdldFJlZkltYWdlTmFtZXMocXVlc3Rpb24ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlKSxpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbS5pbWFnZVVSTFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUmVmZXJlbmNlIGltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vTXVsdGlJbWFnZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGU9PT0nY2hlY2tsaXN0JyAmJiBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlICE9PSBudWxsICYmIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgIT09ICcnICYmIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgIT09IHVuZGVmaW5lZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlJlZmVyZW5jZSBJbWFnZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctbG9nbyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cDEoZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UsMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJ7e2Vudmlyb25tZW50LlRyYXhBbnN3ZXJDRE59fXt7cXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZX19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAndGFzaydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAndGFzaycgJiYgaGFzUXVlc3Rpb25SZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5SZWZlcmVuY2UgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyc6IGdldEdyaWRDb2x1bW5zKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UubGVuZ3RoKSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc1ZhbGlkSW1hZ2UoaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5JbWFnZVBvcHVwKGdldFJlZkltYWdlVXJscyhxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UpLGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJSZWZlcmVuY2UgaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi51c2VyQW5zd2VyO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXQtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLnNvcEZsYWcgPyAnZmxhZ2Nsb3VyJzonJ1wiPnt7aXRlbS5hbnN3ZXJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc011bHRpUmVmZXJlbmNlSW1hZ2VzKGl0ZW0pIHx8IChpdGVtLnJlZmVyZW5jZUltYWdlICYmIGl0ZW0ucmVmZXJlbmNlSW1hZ2UgIT09ICcnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0JyAmJiBoYXNNdWx0aVJlZmVyZW5jZUltYWdlcyhpdGVtKTsgZWxzZSBub011bHRpSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+UmVmZXJlbmNlIEltYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyc6IGdldEdyaWRDb2x1bW5zKGl0ZW0ubXVsdGlSZWZlcmVuY2VJbWFnZS5sZW5ndGgpIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcmVmZkl0ZW0gb2YgaXRlbS5tdWx0aVJlZmVyZW5jZUltYWdlO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtdGlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNWYWxpZEltYWdlKHJlZmZJdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5NdWx0aUltYWdlUG9wdXAoZ2V0TXVsdGlSZWZJbWFnZVVybHMoaXRlbS5tdWx0aVJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKGl0ZW0ubXVsdGlSZWZlcmVuY2VJbWFnZSksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgcmVmZkl0ZW0uaW1hZ2VVUkxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUmVmZXJlbmNlIGltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub011bHRpSW1hZ2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5yZWZlcmVuY2VJbWFnZSE9PW51bGwmJml0ZW0ucmVmZXJlbmNlSW1hZ2UhPT0nJyYmZ2FsbGVyeUZvcm0udmFsdWUudHlwZT09PSdjaGVja2xpc3QnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5SZWZlcmVuY2UgSW1hZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1sb2dvIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAxKGVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtLnJlZmVyZW5jZUltYWdlLDApXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJ7e2Vudmlyb25tZW50LlRyYXhBbnN3ZXJDRE59fXt7aXRlbS5yZWZlcmVuY2VJbWFnZX19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICd0YXNrJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKVwiPlJlZmVyZW5jZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbWFnZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc1JlZmVyZW5jZUltYWdlcyhxdWVzdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFuc3dlciBvZiBxdWVzdGlvbi5hbnN3ZXJzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhbnN3ZXIucmVmZXJlbmNlSW1hZ2U/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhbnN3ZXIucmVmZXJlbmNlSW1hZ2U7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cChnZXRSZWZJbWFnZVVybHMoYW5zd2VyLnJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKGFuc3dlci5yZWZlcmVuY2VJbWFnZSksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJpdGVtLnZhbGlkYXRpb25UeXBlPT09J0NhcHR1cmUgSW1hZ2UnPydjb2wtbWQtNic6J2NvbC1tZC0xMidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS52YWxpZGF0aW9uJiZpdGVtLnZhbGlkYXRpb25BbnN3ZXIhPT0nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktMyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0udmFsaWRhdGlvblR5cGU9PT0nQ2FwdHVyZSBJbWFnZSd8fGl0ZW0udmFsaWRhdGlvblR5cGU9PT0nQ2FwdHVyZSBWaWRlbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+VmFsaWRhdGlvbiBBbnN3ZXIgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjaGVja0RldGVjdGlvblN0YXR1cyhxdWVzdGlvbi51c2VyQW5zd2VyPy5bMF0/LnJ1bkFJRGF0YSkua2V5UHJlc2VudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY2hlY2tEZXRlY3Rpb25TdGF0dXMocXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5ydW5BSURhdGEpLmtleVZhbHVlID8gJ2JnU3VjY2VzcycgOiAnYmdEYW5nZXInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0RldGVjdGlvblN0YXR1cyhxdWVzdGlvbi51c2VyQW5zd2VyPy5bMF0/LnJ1bkFJRGF0YSkua2V5VmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdNYXRjaGVkJyA6ICdOb3QgTWF0Y2hlZCcgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGltZyBjbGFzcz1cImltZy1sb2dvIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9wZW5JbWFnZVBvcHVwMShlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbS52YWxpZGF0aW9uQW5zd2VyLDApXCIgKm5nSWY9XCJpdGVtLnZhbGlkYXRpb25UeXBlPT09J0NhcHR1cmUgSW1hZ2UnXCIgc3JjPVwie3tlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROfX17e2l0ZW0udmFsaWRhdGlvbkFuc3dlcn19XCIgYWx0PVwiXCI+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLWxvZ28gY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5JbWFnZVBvcHVwMSgoaXRlbS5ydW5BSUFuc3dlcikgPyBlbnZpcm9ubWVudC50cmF4UnVuQWlDRE4gKyBpdGVtLnJ1bkFJQW5zd2VyIDogZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW0udmFsaWRhdGlvbkFuc3dlciwwKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0udmFsaWRhdGlvblR5cGU9PT0nQ2FwdHVyZSBJbWFnZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCIoaXRlbS5ydW5BSUFuc3dlcikgPyBlbnZpcm9ubWVudC50cmF4UnVuQWlDRE4gKyBpdGVtLnJ1bkFJQW5zd2VyIDogZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW0udmFsaWRhdGlvbkFuc3dlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgdy0xMDAgaC00NTBweCBwLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0udmFsaWRhdGlvblR5cGUgPT09ICdDYXB0dXJlIFZpZGVvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlkZW8gY29udHJvbHMgY2xhc3M9XCJ3LTEwMCBoLTEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtLnZhbGlkYXRpb25BbnN3ZXJcIj48L3ZpZGVvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgdG9wLTAgZW5kLTAgbS0zIGN1cnNvci1wb2ludGVyXCI+PHN2ZyAoY2xpY2spPVwiZG93bmxvYWRWaWRlbyhpdGVtLmFuc3dlcilcIiB0aXRsZT1cIkRvd25sb2FkIFZpZGVvXCIgaWQ9XCJkb3dubG9hZC1pY29uXCIgd2lkdGg9XCI0NFwiIGhlaWdodD1cIjQ0XCIgdmlld0JveD1cIjAgMCA0NCA0NFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwiaWNvbi1vdmVybGF5XCI+PGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMzgyMl8xOTQ3OSlcIj48cmVjdCB4PVwiMlwiIHk9XCIxXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgcng9XCI4XCIgZmlsbD1cIndoaXRlXCIvPjxyZWN0IHg9XCIyLjVcIiB5PVwiMS41XCIgd2lkdGg9XCIzOVwiIGhlaWdodD1cIjM5XCIgcng9XCI3LjVcIiBzdHJva2U9XCIjRDBENUREXCIvPjxwYXRoIGQ9XCJNMjkuNSAyMy41VjI2LjgzMzNDMjkuNSAyNy4yNzU0IDI5LjMyNDQgMjcuNjk5MyAyOS4wMTE4IDI4LjAxMThDMjguNjk5MyAyOC4zMjQ0IDI4LjI3NTQgMjguNSAyNy44MzMzIDI4LjVIMTYuMTY2N0MxNS43MjQ2IDI4LjUgMTUuMzAwNyAyOC4zMjQ0IDE0Ljk4ODIgMjguMDExOEMxNC42NzU2IDI3LjY5OTMgMTQuNSAyNy4yNzU0IDE0LjUgMjYuODMzM1YyMy41TTE3LjgzMzMgMTkuMzMzM0wyMiAyMy41TTIyIDIzLjVMMjYuMTY2NyAxOS4zMzMzTTIyIDIzLjVWMTMuNVwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvZz48ZGVmcz48ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzM4MjJfMTk0NzlcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI0NFwiIGhlaWdodD1cIjQ0XCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz48ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIvPjxmZU9mZnNldCBkeT1cIjFcIi8+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIi8+PGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMC4wNjI3NDUxIDAgMCAwIDAgMC4wOTQxMTc2IDAgMCAwIDAgMC4xNTY4NjMgMCAwIDAgMC4wNSAwXCIvPjxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMzgyMl8xOTQ3OVwiLz48ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93XzM4MjJfMTk0NzlcIiByZXN1bHQ9XCJzaGFwZVwiLz48L2ZpbHRlcj48L2RlZnM+PC9zdmc+PC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0udmFsaWRhdGlvblR5cGU9PT0nRGVzY3JpcHRpdmUgQW5zd2VyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uc29wRmxhZyA/ICdmbGFnY2xvdXInOicnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkYXRpb24gQW5zd2VyIDoge3tpdGVtLnZhbGlkYXRpb25BbnN3ZXJ9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbWFya3NUeHRcIiAqbmdJZj1cInF1ZXN0aW9uLnJlbWFya3MhPT0nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtYXJrcyA6IHt7cXVlc3Rpb24ucmVtYXJrc319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi51c2VyQW5zd2VyPy5bMF0/LnJ1bkFJRGF0YT8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVtYXJrc1R4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFpRGF0YUl0ZW0gb2YgcXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5ydW5BSURhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFpRGF0YUl0ZW0/LmxhYmxlTmFtZSAhPT0gJ2RldGVjdGlvblN0YXR1cydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGI+e3thaURhdGFJdGVtLmxhYmxlTmFtZX19IDo8L2I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YWlEYXRhSXRlbS52YWx1ZT8udG9TdHJpbmcoKT8ucGFkU3RhcnQoMiwnMCcpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHB4LTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24/LmFuc3dlclR5cGU9PT0nbXVsdGlwbGVjaG9pY2VtdWx0aXBsZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIChoYXNNdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKSB8fCAocXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAmJiBxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlICE9PSAnJykpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ2NoZWNrbGlzdCcgJiYgaGFzTXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbik7IGVsc2Ugbm9NdWx0aUltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5SZWZlcmVuY2UgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyc6IGdldEdyaWRDb2x1bW5zKHF1ZXN0aW9uLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZS5sZW5ndGgpIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHF1ZXN0aW9uLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS10aWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNWYWxpZEltYWdlKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuTXVsdGlJbWFnZVBvcHVwKGdldE11bHRpUmVmSW1hZ2VVcmxzKHF1ZXN0aW9uLm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZSksZ2V0UmVmSW1hZ2VOYW1lcyhxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UpLGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtLmltYWdlVVJMXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJSZWZlcmVuY2UgaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9NdWx0aUltYWdlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZT09PSdjaGVja2xpc3QnICYmIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgIT09IG51bGwgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0gJycgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0gdW5kZWZpbmVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+UmVmZXJlbmNlIEltYWdlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1sb2dvIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5JbWFnZVBvcHVwMShlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSwwKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cInt7ZW52aXJvbm1lbnQuVHJheEFuc3dlckNETn19e3txdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ3Rhc2snICYmIGhhc1F1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFF1ZXN0aW9uIFJlZmVyZW5jZSBJbWFnZXMgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ3Rhc2snICYmIGhhc1F1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+UmVmZXJlbmNlIEltYWdlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiBnZXRHcmlkQ29sdW1ucyhxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlLmxlbmd0aCkgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS10aWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNWYWxpZEltYWdlKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cChnZXRSZWZJbWFnZVVybHMocXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSksZ2V0UmVmSW1hZ2VOYW1lcyhxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlKSxpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUmVmZXJlbmNlIGltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJQYXJ0aWFsbHkgbXktMyBweC01XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlc3Rpb24udXNlckFuc3dlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm10LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5zb3BGbGFnID8gJ2ZsYWdjbG91cic6JydcIj57e2l0ZW0uYW5zd2VyfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0JyAmJiBoYXNNdWx0aVJlZmVyZW5jZUltYWdlcyhpdGVtKSB8fCAoaXRlbS5yZWZlcmVuY2VJbWFnZSAmJiBpdGVtLnJlZmVyZW5jZUltYWdlICE9PSAnJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ2NoZWNrbGlzdCcgJiYgaGFzTXVsdGlSZWZlcmVuY2VJbWFnZXMoaXRlbSk7IGVsc2Ugbm9NdWx0aUltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlJlZmVyZW5jZSBJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtZ3JpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiBnZXRHcmlkQ29sdW1ucyhpdGVtLm11bHRpUmVmZXJlbmNlSW1hZ2UubGVuZ3RoKSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHJlZmZJdGVtIG9mIGl0ZW0ubXVsdGlSZWZlcmVuY2VJbWFnZTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzVmFsaWRJbWFnZShyZWZmSXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuTXVsdGlJbWFnZVBvcHVwKGdldE11bHRpUmVmSW1hZ2VVcmxzKGl0ZW0ubXVsdGlSZWZlcmVuY2VJbWFnZSksZ2V0UmVmSW1hZ2VOYW1lcyhpdGVtLm11bHRpUmVmZXJlbmNlSW1hZ2UpLGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIHJlZmZJdGVtLmltYWdlVVJMXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlJlZmVyZW5jZSBpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9NdWx0aUltYWdlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0ucmVmZXJlbmNlSW1hZ2UgIT09IG51bGwgJiYgaXRlbS5yZWZlcmVuY2VJbWFnZSAhPT0nJyAmJiBnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlPT09J2NoZWNrbGlzdCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlJlZmVyZW5jZSBJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLWxvZ28gY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cDEoZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW0ucmVmZXJlbmNlSW1hZ2UsMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cInt7ZW52aXJvbm1lbnQuVHJheEFuc3dlckNETn19e3tpdGVtLnJlZmVyZW5jZUltYWdlfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ3Rhc2snXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+IFJlZmVyZW5jZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbWFnZSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhbnN3ZXIgb2YgcXVlc3Rpb24uYW5zd2Vyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYW5zd2VyLnJlZmVyZW5jZUltYWdlPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS10aWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYW5zd2VyLnJlZmVyZW5jZUltYWdlO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAoZ2V0UmVmSW1hZ2VVcmxzKGFuc3dlci5yZWZlcmVuY2VJbWFnZSksZ2V0UmVmSW1hZ2VOYW1lcyhhbnN3ZXIucmVmZXJlbmNlSW1hZ2UpLGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJpdGVtLnZhbGlkYXRpb25UeXBlPT09J0NhcHR1cmUgSW1hZ2UnPydjb2wtbWQtNic6J2NvbC1tZC0xMidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS52YWxpZGF0aW9uJiZpdGVtLnZhbGlkYXRpb25BbnN3ZXImJml0ZW0udmFsaWRhdGlvbkFuc3dlciE9PScnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS52YWxpZGF0aW9uVHlwZT09PSdDYXB0dXJlIEltYWdlJ3x8aXRlbS52YWxpZGF0aW9uVHlwZT09PSdDYXB0dXJlIFZpZGVvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5WYWxpZGF0aW9uIEFuc3dlciA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNoZWNrRGV0ZWN0aW9uU3RhdHVzKGl0ZW0/LnJ1bkFJRGF0YSkua2V5UHJlc2VudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY2hlY2tEZXRlY3Rpb25TdGF0dXMoaXRlbT8ucnVuQUlEYXRhKS5rZXlWYWx1ZSA/ICdiZ1N1Y2Nlc3MnIDogJ2JnRGFuZ2VyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tEZXRlY3Rpb25TdGF0dXMoaXRlbT8ucnVuQUlEYXRhKS5rZXlWYWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ01hdGNoZWQnIDogJ05vdCBNYXRjaGVkJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8aW1nIGNsYXNzPVwiaW1nLWxvZ28gIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9wZW5JbWFnZVBvcHVwMShlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbS52YWxpZGF0aW9uQW5zd2VyLDApXCIgKm5nSWY9XCJpdGVtLnZhbGlkYXRpb25UeXBlPT09J0NhcHR1cmUgSW1hZ2UnXCIgc3JjPVwie3tlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROfX17e2l0ZW0udmFsaWRhdGlvbkFuc3dlcn19XCIgIGFsdD1cIlwiPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1sb2dvIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cDEoKGl0ZW0ucnVuQUlBbnN3ZXIpID8gZW52aXJvbm1lbnQudHJheFJ1bkFpQ0ROICsgaXRlbS5ydW5BSUFuc3dlciA6IGVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtLnZhbGlkYXRpb25BbnN3ZXIsMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnZhbGlkYXRpb25UeXBlPT09J0NhcHR1cmUgSW1hZ2UnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiKGl0ZW0ucnVuQUlBbnN3ZXIpID8gZW52aXJvbm1lbnQudHJheFJ1bkFpQ0ROICsgaXRlbS5ydW5BSUFuc3dlciA6IGVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtLnZhbGlkYXRpb25BbnN3ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIHctMTAwIGgtNDUwcHggcC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnZhbGlkYXRpb25UeXBlID09PSAnQ2FwdHVyZSBWaWRlbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZpZGVvIGNvbnRyb2xzIGNsYXNzPVwidy0xMDAgaC0xMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbS52YWxpZGF0aW9uQW5zd2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmlkZW8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSB0b3AtMCBlbmQtMCBtLTMgY3Vyc29yLXBvaW50ZXJcIj48c3ZnIChjbGljayk9XCJkb3dubG9hZFZpZGVvKGl0ZW0uYW5zd2VyKVwiIHRpdGxlPVwiRG93bmxvYWQgVmlkZW9cIiBpZD1cImRvd25sb2FkLWljb25cIiB3aWR0aD1cIjQ0XCIgaGVpZ2h0PVwiNDRcIiB2aWV3Qm94PVwiMCAwIDQ0IDQ0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJpY29uLW92ZXJsYXlcIj48ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8zODIyXzE5NDc5KVwiPjxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIi8+PHJlY3QgeD1cIjIuNVwiIHk9XCIxLjVcIiB3aWR0aD1cIjM5XCIgaGVpZ2h0PVwiMzlcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiNEMEQ1RERcIi8+PHBhdGggZD1cIk0yOS41IDIzLjVWMjYuODMzM0MyOS41IDI3LjI3NTQgMjkuMzI0NCAyNy42OTkzIDI5LjAxMTggMjguMDExOEMyOC42OTkzIDI4LjMyNDQgMjguMjc1NCAyOC41IDI3LjgzMzMgMjguNUgxNi4xNjY3QzE1LjcyNDYgMjguNSAxNS4zMDA3IDI4LjMyNDQgMTQuOTg4MiAyOC4wMTE4QzE0LjY3NTYgMjcuNjk5MyAxNC41IDI3LjI3NTQgMTQuNSAyNi44MzMzVjIzLjVNMTcuODMzMyAxOS4zMzMzTDIyIDIzLjVNMjIgMjMuNUwyNi4xNjY3IDE5LjMzMzNNMjIgMjMuNVYxMy41XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9nPjxkZWZzPjxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMzgyMl8xOTQ3OVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQ0XCIgaGVpZ2h0PVwiNDRcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIvPjxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+PGZlT2Zmc2V0IGR5PVwiMVwiLz48ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMVwiLz48ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIi8+PGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18zODIyXzE5NDc5XCIvPjxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMzgyMl8xOTQ3OVwiIHJlc3VsdD1cInNoYXBlXCIvPjwvZmlsdGVyPjwvZGVmcz48L3N2Zz48L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS52YWxpZGF0aW9uVHlwZT09PSdEZXNjcmlwdGl2ZSBBbnN3ZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5zb3BGbGFnID8gJ2ZsYWdjbG91cic6JydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsaWRhdGlvbiBBbnN3ZXIgOiB7e2l0ZW0udmFsaWRhdGlvbkFuc3dlcn19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZW1hcmtzVHh0XCIgKm5nSWY9XCJxdWVzdGlvbi5yZW1hcmtzIT09JydcIj4gUmVtYXJrcyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cXVlc3Rpb24ucmVtYXJrc319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLnVzZXJBbnN3ZXI/LlswXT8ucnVuQUlEYXRhPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbWFya3NUeHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFpRGF0YUl0ZW0gb2YgcXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5ydW5BSURhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhaURhdGFJdGVtPy5sYWJsZU5hbWUgIT09ICdkZXRlY3Rpb25TdGF0dXMnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGI+e3thaURhdGFJdGVtLmxhYmxlTmFtZX19IDo8L2I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3thaURhdGFJdGVtLnZhbHVlPy50b1N0cmluZygpPy5wYWRTdGFydCgyLCcwJyl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cInF1ZXN0aW9uPy5hbnN3ZXJUeXBlPT09J2ltYWdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ3Rhc2snICYmIChoYXNSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pIHx8IGhhc0NoZWNrbGlzdFJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbikpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc1JlZmVyZW5jZUltYWdlcyhxdWVzdGlvbilcIj5SZWZlcmVuY2UgSW1hZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhbnN3ZXIgb2YgcXVlc3Rpb24uYW5zd2Vyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhbnN3ZXIucmVmZXJlbmNlSW1hZ2U/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS10aWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFuc3dlci5yZWZlcmVuY2VJbWFnZTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAoZ2V0UmVmSW1hZ2VVcmxzKGFuc3dlci5yZWZlcmVuY2VJbWFnZSksZ2V0UmVmSW1hZ2VOYW1lcyhhbnN3ZXIucmVmZXJlbmNlSW1hZ2UpLGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBGb3IgQ2hlY2tsaXN0IFR5cGUgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0JyAmJiAoaGFzSW1hZ2VNdWx0aVJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbikgfHwgaGFzUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKSB8fCBoYXNDaGVja2xpc3RSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIGhhc0ltYWdlTXVsdGlSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pOyBlbHNlIG5vTXVsdGlJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0ltYWdlTXVsdGlSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlIEltYWdlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0ltYWdlTXVsdGlSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYW5zd2VyIG9mIHF1ZXN0aW9uLmFuc3dlcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhbnN3ZXIubXVsdGlSZWZlcmVuY2VJbWFnZT8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS10aWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhbnN3ZXIubXVsdGlSZWZlcmVuY2VJbWFnZTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuTXVsdGlJbWFnZVBvcHVwKGdldE11bHRpUmVmSW1hZ2VVcmxzKGFuc3dlci5tdWx0aVJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKGFuc3dlci5tdWx0aVJlZmVyZW5jZUltYWdlKSxpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW0uaW1hZ2VVUkxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vTXVsdGlJbWFnZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0JyAmJiAoaGFzUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKSB8fCBoYXNDaGVja2xpc3RSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzQ2hlY2tsaXN0UmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWZlcmVuY2UgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNDaGVja2xpc3RSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhbnN3ZXIgb2YgcXVlc3Rpb24uYW5zd2VycztsZXQgaT1pbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYW5zd2VyLnJlZmVyZW5jZUltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5JbWFnZVBvcHVwKGdldFJlZmNoZWNrbGlzdEltYWdlVXJscyhxdWVzdGlvbi5hbnN3ZXJzKSxnZXRSZWZjaGVja2xpc3RJbWFnZU5hbWVzKHF1ZXN0aW9uLmFuc3dlcnMpLGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgYW5zd2VyLnJlZmVyZW5jZUltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgcm93XCIgKm5nSWY9XCJoYXNJbWFnZUFuc3dlcihxdWVzdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+VXBsb2FkZWQgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNoZWNrRGV0ZWN0aW9uU3RhdHVzKHF1ZXN0aW9uLnVzZXJBbnN3ZXI/LlswXT8ucnVuQUlEYXRhKS5rZXlQcmVzZW50IDsgZWxzZSBub1J1bkFJRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjaGVja0RldGVjdGlvblN0YXR1cyhxdWVzdGlvbi51c2VyQW5zd2VyPy5bMF0/LnJ1bkFJRGF0YSkua2V5VmFsdWUgPyAnYmdTdWNjZXNzJyA6ICdiZ0RhbmdlcidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tEZXRlY3Rpb25TdGF0dXMocXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5ydW5BSURhdGEpLmtleVZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ01hdGNoZWQnIDogJ05vdCBNYXRjaGVkJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub1J1bkFJRGF0YT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWNoZWNrRGV0ZWN0aW9uU3RhdHVzKHF1ZXN0aW9uLnVzZXJBbnN3ZXI/LlswXT8ucnVuQUlEYXRhKS5rZXlQcmVzZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5ydW5BSUFuc3dlciBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5kZXRlY3Rpb25TdGF0dXMgIT09IHVuZGVmaW5lZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwicXVlc3Rpb24udXNlckFuc3dlclswXT8uZGV0ZWN0aW9uU3RhdHVzID8gJ2JnU3VjY2VzcycgOiAnYmdEYW5nZXInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3txdWVzdGlvbi51c2VyQW5zd2VyWzBdLmRldGVjdGlvblN0YXR1c1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ01hdGNoZWQnIDogJ05vdCBNYXRjaGVkJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieydncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiBnZXRHcmlkQ29sdW1ucyhxdWVzdGlvbi51c2VyQW5zd2VyLmxlbmd0aCksICdncmlkLWF1dG8tcm93cyc6IGdldEdyaWRSb3dIZWlnaHQocXVlc3Rpb24udXNlckFuc3dlci5sZW5ndGgpfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtdGlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlc3Rpb24udXNlckFuc3dlcjtsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5JbWFnZVBvcHVwKGdldEltYWdlVXJscyhxdWVzdGlvbi51c2VyQW5zd2VyKSxnZXRJbWFnZU5hbWVzKHF1ZXN0aW9uLnVzZXJBbnN3ZXIpLGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCIoaXRlbS5ydW5BSUFuc3dlcikgPyBlbnZpcm9ubWVudC50cmF4UnVuQWlDRE4gKyBpdGVtLnJ1bkFJQW5zd2VyIDogZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW0uYW5zd2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBzYW5pdGl6ZVVybChlbnZpcm9ubWVudC50cmF4UnVuQWlDRE4gKyBpdGVtLnJ1bkFJQW5zd2VyKSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVtYXJrc1R4dFwiICpuZ0lmPVwicXVlc3Rpb24ucmVtYXJrcyE9PScnXCI+UmVtYXJrcyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cXVlc3Rpb24ucmVtYXJrc319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicmVtYXJrc1R4dFwiICpuZ0lmPVwicXVlc3Rpb24ucnVuQUkgJiYgcXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5lbXBsb3llZUNvdW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiPkVtcGxveWVlIENvdW50IDo8L2I+IHt7cXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5lbXBsb3llZUNvdW50Py50b1N0cmluZygpPy5wYWRTdGFydCgyLCcwJyl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5ydW5BSURhdGE/Lmxlbmd0aDsgZWxzZSBub1J1bkFJRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVtYXJrc1R4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYWlEYXRhSXRlbSBvZiBxdWVzdGlvbi51c2VyQW5zd2VyPy5bMF0/LnJ1bkFJRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFpRGF0YUl0ZW0/LmxhYmxlTmFtZSAhPT0gJ2RldGVjdGlvblN0YXR1cydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yj57e2FpRGF0YUl0ZW0ubGFibGVOYW1lfX0gOjwvYj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2FpRGF0YUl0ZW0udmFsdWU/LnRvU3RyaW5nKCk/LnBhZFN0YXJ0KDIsJzAnKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9SdW5BSURhdGE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXF1ZXN0aW9uLnVzZXJBbnN3ZXI/LlswXT8ucnVuQUlEYXRhPy5sZW5ndGggJiYgcXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5lbXBsb3llZUNvdW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVtYXJrc1R4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi51c2VyQW5zd2VyPy5bMF0/LmVtcGxveWVlQ291bnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yj5FbXBsb3llZSBDb3VudCA6PC9iPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5lbXBsb3llZUNvdW50Py50b1N0cmluZygpPy5wYWRTdGFydCgyLCcwJyl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHB4LTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24/LmFuc3dlclR5cGU9PT0nZGVzY3JpcHRpdmVJbWFnZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICd0YXNrJyAmJiAoaGFzUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKSB8fCBoYXNDaGVja2xpc3RSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+IFJlZmVyZW5jZSBJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtZ3JpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc1JlZmVyZW5jZUltYWdlcyhxdWVzdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFuc3dlciBvZiBxdWVzdGlvbi5hbnN3ZXJzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFuc3dlci5yZWZlcmVuY2VJbWFnZT8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYW5zd2VyLnJlZmVyZW5jZUltYWdlO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cChnZXRSZWZJbWFnZVVybHMoYW5zd2VyLnJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKGFuc3dlci5yZWZlcmVuY2VJbWFnZSksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEZvciBDaGVja2xpc3QgVHlwZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIChoYXNJbWFnZU11bHRpUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKSB8fCBoYXNSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIGhhc0ltYWdlTXVsdGlSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pOyBlbHNlIG5vTXVsdGlJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0ltYWdlTXVsdGlSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlIEltYWdlIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtZ3JpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNJbWFnZU11bHRpUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFuc3dlciBvZiBxdWVzdGlvbi5hbnN3ZXJzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYW5zd2VyLm11bHRpUmVmZXJlbmNlSW1hZ2U/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtdGlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYW5zd2VyLm11bHRpUmVmZXJlbmNlSW1hZ2U7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk11bHRpSW1hZ2VQb3B1cChnZXRNdWx0aVJlZkltYWdlVXJscyhhbnN3ZXIubXVsdGlSZWZlcmVuY2VJbWFnZSksZ2V0UmVmSW1hZ2VOYW1lcyhhbnN3ZXIubXVsdGlSZWZlcmVuY2VJbWFnZSksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBpdGVtLmltYWdlVVJMXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub011bHRpSW1hZ2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ2NoZWNrbGlzdCcgJiYgKGhhc1JlZmVyZW5jZUltYWdlcyhxdWVzdGlvbikgfHwgaGFzQ2hlY2tsaXN0UmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0NoZWNrbGlzdFJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlIEltYWdlIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0NoZWNrbGlzdFJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFuc3dlciBvZiBxdWVzdGlvbi5hbnN3ZXJzO2xldCBpPWluZGV4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtdGlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhbnN3ZXIucmVmZXJlbmNlSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAoZ2V0UmVmY2hlY2tsaXN0SW1hZ2VVcmxzKHF1ZXN0aW9uLmFuc3dlcnMpLGdldFJlZmNoZWNrbGlzdEltYWdlTmFtZXMocXVlc3Rpb24uYW5zd2VycyksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyBhbnN3ZXIucmVmZXJlbmNlSW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJoYXNSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pIHx8IGhhc0NoZWNrbGlzdFJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbikgPyAnY29sLW1kLTYnIDogJ2NvbC1tZC02J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+VXBsb2FkZWQgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY2hlY2tEZXRlY3Rpb25TdGF0dXMocXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5ydW5BSURhdGEpLmtleVByZXNlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjaGVja0RldGVjdGlvblN0YXR1cyhxdWVzdGlvbi51c2VyQW5zd2VyPy5bMF0/LnJ1bkFJRGF0YSkua2V5VmFsdWUgPyAnYmdTdWNjZXNzJyA6ICdiZ0RhbmdlcidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0RldGVjdGlvblN0YXR1cyhxdWVzdGlvbi51c2VyQW5zd2VyPy5bMF0/LnJ1bkFJRGF0YSkua2V5VmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ01hdGNoZWQnIDogJ05vdCBNYXRjaGVkJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJzogZ2V0R3JpZENvbHVtbnMocXVlc3Rpb24udXNlckFuc3dlci5sZW5ndGgpLCAnZ3JpZC1hdXRvLXJvd3MnOiBnZXRHcmlkUm93SGVpZ2h0KHF1ZXN0aW9uLnVzZXJBbnN3ZXIubGVuZ3RoKX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIHF1ZXN0aW9uLnVzZXJBbnN3ZXI7bGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sbGFnZS10aWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAoZ2V0SW1hZ2VVcmxzKHF1ZXN0aW9uLnVzZXJBbnN3ZXIpLGdldEltYWdlTmFtZXMocXVlc3Rpb24udXNlckFuc3dlciksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCIoaXRlbS5ydW5BSUFuc3dlcikgPyBlbnZpcm9ubWVudC50cmF4UnVuQWlDRE4gKyBpdGVtLnJ1bkFJQW5zd2VyIDogZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW0uYW5zd2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZW1hcmtzVHh0XCIgKm5nSWY9XCJxdWVzdGlvbi5yZW1hcmtzIT09JydcIj5SZW1hcmtzIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3txdWVzdGlvbi5yZW1hcmtzfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5ydW5BSURhdGE/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVtYXJrc1R4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYWlEYXRhSXRlbSBvZiBxdWVzdGlvbi51c2VyQW5zd2VyPy5bMF0/LnJ1bkFJRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFpRGF0YUl0ZW0/LmxhYmxlTmFtZSAhPT0gJ2RldGVjdGlvblN0YXR1cydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yj57e2FpRGF0YUl0ZW0ubGFibGVOYW1lfX0gOjwvYj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2FpRGF0YUl0ZW0udmFsdWU/LnRvU3RyaW5nKCk/LnBhZFN0YXJ0KDIsJzAnKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC01XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uPy5hbnN3ZXJUeXBlPT09J211bHRpcGxlSW1hZ2UnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAndGFzaycgJiYgKGhhc1JlZmVyZW5jZUltYWdlcyhxdWVzdGlvbikgfHwgaGFzQ2hlY2tsaXN0UmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKVwiPlJlZmVyZW5jZSBJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtZ3JpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc1JlZmVyZW5jZUltYWdlcyhxdWVzdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFuc3dlciBvZiBxdWVzdGlvbi5hbnN3ZXJzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFuc3dlci5yZWZlcmVuY2VJbWFnZT8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYW5zd2VyLnJlZmVyZW5jZUltYWdlO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cChnZXRSZWZJbWFnZVVybHMoYW5zd2VyLnJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKGFuc3dlci5yZWZlcmVuY2VJbWFnZSksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEZvciBDaGVja2xpc3QgVHlwZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIChoYXNJbWFnZU11bHRpUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKSB8fCBoYXNSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pIHx8IGhhc0NoZWNrbGlzdFJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbikpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUudHlwZSA9PT0gJ2NoZWNrbGlzdCcgJiYgaGFzSW1hZ2VNdWx0aVJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbik7IGVsc2Ugbm9NdWx0aUltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzSW1hZ2VNdWx0aVJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWZlcmVuY2UgSW1hZ2UgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0ltYWdlTXVsdGlSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYW5zd2VyIG9mIHF1ZXN0aW9uLmFuc3dlcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhbnN3ZXIubXVsdGlSZWZlcmVuY2VJbWFnZT8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS10aWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhbnN3ZXIubXVsdGlSZWZlcmVuY2VJbWFnZTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuTXVsdGlJbWFnZVBvcHVwKGdldE11bHRpUmVmSW1hZ2VVcmxzKGFuc3dlci5tdWx0aVJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKGFuc3dlci5tdWx0aVJlZmVyZW5jZUltYWdlKSxpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW0uaW1hZ2VVUkxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vTXVsdGlJbWFnZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAnY2hlY2tsaXN0JyAmJiAoaGFzUmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKSB8fCBoYXNDaGVja2xpc3RSZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzQ2hlY2tsaXN0UmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWZlcmVuY2UgSW1hZ2UgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtZ3JpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzQ2hlY2tsaXN0UmVmZXJlbmNlSW1hZ2VzKHF1ZXN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYW5zd2VyIG9mIHF1ZXN0aW9uLmFuc3dlcnM7bGV0IGk9aW5kZXg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS10aWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFuc3dlci5yZWZlcmVuY2VJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cChnZXRSZWZjaGVja2xpc3RJbWFnZVVybHMocXVlc3Rpb24uYW5zd2VycyksZ2V0UmVmY2hlY2tsaXN0SW1hZ2VOYW1lcyhxdWVzdGlvbi5hbnN3ZXJzKSxpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGFuc3dlci5yZWZlcmVuY2VJbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nSWY9XCJoYXNJbWFnZUFuc3dlcihxdWVzdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5VcGxvYWRlZCBJbWFnZTwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCIgW25nU3R5bGVdPVwieydncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiBnZXRHcmlkQ29sdW1ucyhxdWVzdGlvbi51c2VyQW5zd2VyLmxlbmd0aCksICdncmlkLWF1dG8tcm93cyc6IGdldEdyaWRSb3dIZWlnaHQocXVlc3Rpb24udXNlckFuc3dlci5sZW5ndGgpfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi51c2VyQW5zd2VyO2xldCBpPWluZGV4XCIgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAoZ2V0SW1hZ2VVcmxzKHF1ZXN0aW9uLnVzZXJBbnN3ZXIpLGdldEltYWdlTmFtZXMocXVlc3Rpb24udXNlckFuc3dlciksaSlcIiBzcmM9XCJ7e2Vudmlyb25tZW50LlRyYXhBbnN3ZXJDRE59fXt7aXRlbS5hbnN3ZXJ9fVwiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+VXBsb2FkZWQgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIm11bHRpSW1hZ2VDaGVja0RldGVjdGlvblN0YXR1cyhxdWVzdGlvbi51c2VyQW5zd2VyKS5rZXlQcmVzZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm11bHRpSW1hZ2VDaGVja0RldGVjdGlvblN0YXR1cyhxdWVzdGlvbi51c2VyQW5zd2VyKS5rZXlWYWx1ZSA/ICdiZ1N1Y2Nlc3MnIDogJ2JnRGFuZ2VyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0RldGVjdGlvblN0YXR1cyhxdWVzdGlvbi51c2VyQW5zd2VyPy5bMF0/LnJ1bkFJRGF0YSkua2V5VmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnTWF0Y2hlZCcgOiAnTm90IE1hdGNoZWQnIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJzogZ2V0R3JpZENvbHVtbnMocXVlc3Rpb24udXNlckFuc3dlci5sZW5ndGgpLCAnZ3JpZC1hdXRvLXJvd3MnOiBnZXRHcmlkUm93SGVpZ2h0KHF1ZXN0aW9uLnVzZXJBbnN3ZXIubGVuZ3RoKX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlc3Rpb24udXNlckFuc3dlcjtsZXQgaT1pbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlUG9wdXAoZ2V0SW1hZ2VVcmxzKHF1ZXN0aW9uLnVzZXJBbnN3ZXIpLGdldEltYWdlTmFtZXMocXVlc3Rpb24udXNlckFuc3dlciksaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIihpdGVtLnJ1bkFJQW5zd2VyKSA/IGVudmlyb25tZW50LnRyYXhSdW5BaUNETiArIGl0ZW0ucnVuQUlBbnN3ZXIgOiBlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbS5hbnN3ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVtYXJrc1R4dFwiICpuZ0lmPVwicXVlc3Rpb24ucmVtYXJrcyE9PScnXCI+UmVtYXJrcyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cXVlc3Rpb24ucmVtYXJrc319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLnVzZXJBbnN3ZXI/LlswXT8ucnVuQUlEYXRhPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbWFya3NUeHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFpRGF0YUl0ZW0gb2YgcXVlc3Rpb24udXNlckFuc3dlcj8uWzBdPy5ydW5BSURhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhaURhdGFJdGVtPy5sYWJsZU5hbWUgIT09ICdkZXRlY3Rpb25TdGF0dXMnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGI+e3thaURhdGFJdGVtLmxhYmxlTmFtZX19IDo8L2I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3thaURhdGFJdGVtLnZhbHVlPy50b1N0cmluZygpPy5wYWRTdGFydCgyLCcwJyl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtNVwiICpuZ0lmPVwicXVlc3Rpb24/LmFuc3dlclR5cGU9PT0ndmlkZW8nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBUYXNrOiBNdWx0aXBsZSByZWZlcmVuY2UgaW1hZ2VzIChBcnJheSkgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSAndGFzaycgJiYgaGFzUXVlc3Rpb25SZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gUXVlc3Rpb24gUmVmZXJlbmNlIEltYWdlcyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+UmVmZXJlbmNlIEltYWdlIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyc6IGdldEdyaWRDb2x1bW5zKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UubGVuZ3RoKSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYWdlLXRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzVmFsaWRJbWFnZShpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5JbWFnZVBvcHVwKGdldFJlZkltYWdlVXJscyhxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlKSxnZXRSZWZJbWFnZU5hbWVzKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UpLGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIGl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUmVmZXJlbmNlIGltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gQ2hlY2tsaXN0OiBTaW5nbGUgcmVmZXJlbmNlIGltYWdlIChTdHJpbmcpIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzTXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlcyhxdWVzdGlvbikgfHwgKHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgICYmIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgIT09ICcnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIGhhc011bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZXMocXVlc3Rpb24pOyBlbHNlIG5vTXVsdGlJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+UmVmZXJlbmNlIEltYWdlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiBnZXRHcmlkQ29sdW1ucyhxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UubGVuZ3RoKSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2U7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhZ2UtdGlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzVmFsaWRJbWFnZShpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk11bHRpSW1hZ2VQb3B1cChnZXRNdWx0aVJlZkltYWdlVXJscyhxdWVzdGlvbi5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UpLGdldFJlZkltYWdlTmFtZXMocXVlc3Rpb24ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlKSxpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgaXRlbS5pbWFnZVVSTFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUmVmZXJlbmNlIGltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vTXVsdGlJbWFnZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnR5cGUgPT09ICdjaGVja2xpc3QnICYmIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgJiYgcXVlc3Rpb24ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPT0gJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5SZWZlcmVuY2UgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJzogZ2V0R3JpZENvbHVtbnMoMSkgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFnZS10aWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW1hZ2VQb3B1cDEoZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UsMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArIHF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlc3Rpb24udXNlckFuc3dlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5VcGxvYWRlZCBWaWRlbzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgdy0xMDAgaC00NTBweCBwLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2aWRlbyBjb250cm9scyBjbGFzcz1cInctMTAwIGgtMTAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJ7e2Vudmlyb25tZW50LlRyYXhBbnN3ZXJDRE59fXt7aXRlbS5hbnN3ZXJ9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92aWRlbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSB0b3AtMCBlbmQtMCBtLTMgY3Vyc29yLXBvaW50ZXJcIj48c3ZnIChjbGljayk9XCJkb3dubG9hZFZpZGVvKGl0ZW0uYW5zd2VyKVwiIHRpdGxlPVwiRG93bmxvYWQgVmlkZW9cIiBpZD1cImRvd25sb2FkLWljb25cIiB3aWR0aD1cIjQ0XCIgaGVpZ2h0PVwiNDRcIiB2aWV3Qm94PVwiMCAwIDQ0IDQ0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJpY29uLW92ZXJsYXlcIj48ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8zODIyXzE5NDc5KVwiPjxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIi8+PHJlY3QgeD1cIjIuNVwiIHk9XCIxLjVcIiB3aWR0aD1cIjM5XCIgaGVpZ2h0PVwiMzlcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiNEMEQ1RERcIi8+PHBhdGggZD1cIk0yOS41IDIzLjVWMjYuODMzM0MyOS41IDI3LjI3NTQgMjkuMzI0NCAyNy42OTkzIDI5LjAxMTggMjguMDExOEMyOC42OTkzIDI4LjMyNDQgMjguMjc1NCAyOC41IDI3LjgzMzMgMjguNUgxNi4xNjY3QzE1LjcyNDYgMjguNSAxNS4zMDA3IDI4LjMyNDQgMTQuOTg4MiAyOC4wMTE4QzE0LjY3NTYgMjcuNjk5MyAxNC41IDI3LjI3NTQgMTQuNSAyNi44MzMzVjIzLjVNMTcuODMzMyAxOS4zMzMzTDIyIDIzLjVNMjIgMjMuNUwyNi4xNjY3IDE5LjMzMzNNMjIgMjMuNVYxMy41XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9nPjxkZWZzPjxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMzgyMl8xOTQ3OVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQ0XCIgaGVpZ2h0PVwiNDRcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIvPjxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+PGZlT2Zmc2V0IGR5PVwiMVwiLz48ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMVwiLz48ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIi8+PGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18zODIyXzE5NDc5XCIvPjxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMzgyMl8xOTQ3OVwiIHJlc3VsdD1cInNoYXBlXCIvPjwvZmlsdGVyPjwvZGVmcz48L3N2Zz48L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVtYXJrc1R4dFwiICpuZ0lmPVwicXVlc3Rpb24ucmVtYXJrcyE9PScnXCI+UmVtYXJrcyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cXVlc3Rpb24ucmVtYXJrc319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbCBmYWRlIG15LTAgcHktMFwiIGlkPVwiaW1hZ2VNb2RhbFwiIHRhYmluZGV4PVwiLTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImRpYWxvZ1wiIHN0eWxlPVwib3ZlcmZsb3c6aGlkZGVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZGlhbG9nIG1vZGFsLWRpYWxvZy1jZW50ZXJlZCBtb2RhbC1sZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImRvY3VtZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnQgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW9kYWwtYm9keSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gUHJldiBCdXR0b24gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaW1hZ2VMaXN0Lmxlbmd0aCA+IDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgcG9zaXRpb24tYWJzb2x1dGUgc3RhcnQtMCB0b3AtNTAgdHJhbnNsYXRlLW1pZGRsZS15IG1zLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZUltYWdlKCdwcmV2JylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjdXJyZW50SW1hZ2VJbmRleCA9PT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKAuVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBJbWFnZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJzZWxlY3RlZEltYWdlVXJsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIm1heC1oZWlnaHQ6IDg1dmg7IG1heC13aWR0aDogMTAwJTsgb2JqZWN0LWZpdDogY29udGFpbjtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW1nLWZsdWlkIHctMTAwICAgbXgtMVwiIC8+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBOZXh0IEJ1dHRvbiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJpbWFnZUxpc3QubGVuZ3RoID4gMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSBwb3NpdGlvbi1hYnNvbHV0ZSBlbmQtMCB0b3AtNTAgdHJhbnNsYXRlLW1pZGRsZS15IG1lLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZUltYWdlKCduZXh0JylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjdXJyZW50SW1hZ2VJbmRleCA9PT0gaW1hZ2VMaXN0Lmxlbmd0aCAtIDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDigLpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbCBmYWRlXCIgaWQ9XCJpbWFnZU1vZGFsMVwiIHRhYmluZGV4PVwiLTFcIiByb2xlPVwiZGlhbG9nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZGlhbG9nIG1vZGFsLWRpYWxvZy1jZW50ZXJlZCBtb2RhbC1sZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImRvY3VtZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnQgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW9kYWwtYm9keSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gSW1hZ2UgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwic2VsZWN0ZWRJbWFnZVVybFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXgtaGVpZ2h0OiA5NXZoOyBtYXgtd2lkdGg6IDEwMCU7IG9iamVjdC1maXQ6IGNvbnRhaW47XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImltZy1mbHVpZCB3LTEwMCAgIG14LTFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgcm91bmRlZC1waWxsIG0tMCBwLTJcIiAqbmdJZj1cInF1ZXN0aW9uPy5saW5rVHlwZSYmcXVlc3Rpb24/LmxpbmtxdWVzdGlvbmVuYWJsZWRcIj5MaW5rZWQgdG8gUXVlc3Rpb24ge3txdWVzdGlvbi5wYXJlbnRRdWVzdGlvbn19PC9idXR0b24+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgdGV4dC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tZGVmYXVsdCBib3JkZXItZGVmYXVsdCBtZS0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInF1ZXN0aW9uLnJlZG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNoZWNrdG9kYXlEYXRlKGNoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbz8uZGF0ZSkmJihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSAhPT0gJ3RhbmdvJyYmIWNoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbz8uYXBwcm92YWxTdGF0dXMmJihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdCYmdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlID09PSdjaGVja2xpc3QnJiZzZWxlY3RlZFN0b3Jlcy5sZW5ndGg9PT0wJiZzZWxlY3RlZFVzZXJzLmxlbmd0aD09PTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkVGFzaygncmVkbycscXVlc3Rpb24sY2hlY2tsaXN0Py5jaGVja2xpc3RJbmZvLGNoZWNrbGlzdD8uc3RvcmVQcm9maWxlLHNlY3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfNjAwNF8xMTczNClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE5LjE2OTMgMy4zMzMzMVY4LjMzMzMyTTE5LjE2OTMgOC4zMzMzMkgxNC4xNjkzTTE5LjE2OTMgOC4zMzMzMkwxNS4zMDI2IDQuNjk5OThDMTQuNDA3IDMuODAzOTEgMTMuMjk5IDMuMTQ5MzIgMTIuMDgxOSAyLjc5NzI5QzEwLjg2NDkgMi40NDUyNyA5LjU3ODUzIDIuNDA3MjcgOC4zNDI4NCAyLjY4Njg2QzcuMTA3MTYgMi45NjY0NSA1Ljk2MjQ0IDMuNTU0NTEgNS4wMTU0OSA0LjM5NjE2QzQuMDY4NTUgNS4yMzc4MiAzLjM1MDI0IDYuMzA1NjQgMi45Mjc2IDcuNDk5OThNMC44MzU5MzggMTYuNjY2NlYxMS42NjY2TTAuODM1OTM4IDExLjY2NjZINS44MzU5NE0wLjgzNTkzOCAxMS42NjY2TDQuNzAyNiAxNS4zQzUuNTk4MjMgMTYuMTk2MSA2LjcwNjI1IDE2Ljg1MDYgNy45MjMyOCAxNy4yMDI3QzkuMTQwMzEgMTcuNTU0NyAxMC40MjY3IDE3LjU5MjcgMTEuNjYyNCAxNy4zMTMxQzEyLjg5OCAxNy4wMzM1IDE0LjA0MjggMTYuNDQ1NSAxNC45ODk3IDE1LjYwMzhDMTUuOTM2NyAxNC43NjIxIDE2LjY1NSAxMy42OTQzIDE3LjA3NzYgMTIuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzYwMDRfMTE3MzRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIGZvbnQtZGVmdWx0LXRhc2tcIj5SZWRvPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tZGVmYXVsdCBib3JkZXItZGVmYXVsdCBtZS0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInF1ZXN0aW9uLnJlZG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNoZWNrdG9kYXlEYXRlKGNoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbz8uZGF0ZSkmJihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSAhPT0gJ3RhbmdvJyYmIWNoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbz8uYXBwcm92YWxTdGF0dXMmJihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfVGFza19pc0VkaXQmJnRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZT09PSd0YXNrJyYmc2VsZWN0ZWRTdG9yZXMubGVuZ3RoPT09MCYmc2VsZWN0ZWRVc2Vycy5sZW5ndGg9PT0wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZFRhc2soJ3JlZG8nLHF1ZXN0aW9uLGNoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbyxjaGVja2xpc3Q/LnN0b3JlUHJvZmlsZSxzZWN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzYwMDRfMTE3MzQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOS4xNjkzIDMuMzMzMzFWOC4zMzMzMk0xOS4xNjkzIDguMzMzMzJIMTQuMTY5M00xOS4xNjkzIDguMzMzMzJMMTUuMzAyNiA0LjY5OTk4QzE0LjQwNyAzLjgwMzkxIDEzLjI5OSAzLjE0OTMyIDEyLjA4MTkgMi43OTcyOUMxMC44NjQ5IDIuNDQ1MjcgOS41Nzg1MyAyLjQwNzI3IDguMzQyODQgMi42ODY4NkM3LjEwNzE2IDIuOTY2NDUgNS45NjI0NCAzLjU1NDUxIDUuMDE1NDkgNC4zOTYxNkM0LjA2ODU1IDUuMjM3ODIgMy4zNTAyNCA2LjMwNTY0IDIuOTI3NiA3LjQ5OTk4TTAuODM1OTM4IDE2LjY2NjZWMTEuNjY2Nk0wLjgzNTkzOCAxMS42NjY2SDUuODM1OTRNMC44MzU5MzggMTEuNjY2Nkw0LjcwMjYgMTUuM0M1LjU5ODIzIDE2LjE5NjEgNi43MDYyNSAxNi44NTA2IDcuOTIzMjggMTcuMjAyN0M5LjE0MDMxIDE3LjU1NDcgMTAuNDI2NyAxNy41OTI3IDExLjY2MjQgMTcuMzEzMUMxMi44OTggMTcuMDMzNSAxNC4wNDI4IDE2LjQ0NTUgMTQuOTg5NyAxNS42MDM4QzE1LjkzNjcgMTQuNzYyMSAxNi42NTUgMTMuNjk0MyAxNy4wNzc2IDEyLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF82MDA0XzExNzM0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBmb250LWRlZnVsdC10YXNrXCI+UmVkbzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc20gIGJvcmRlci12YWwxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhcXVlc3Rpb24udGFzayYmIXF1ZXN0aW9uLnRhc2tJZCYmdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlPT09J2NoZWNrbGlzdCcmJihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSAhPT0gJ3RhbmdvJyYmIWNoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbz8uYXBwcm92YWxTdGF0dXMmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X1Rhc2tfaXNFZGl0JiZzZWxlY3RlZFN0b3Jlcy5sZW5ndGg9PT0wJiZzZWxlY3RlZFVzZXJzLmxlbmd0aD09PTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkVGFzaygnY3JlYXRldGFzaycscXVlc3Rpb24sY2hlY2tsaXN0Py5jaGVja2xpc3RJbmZvLGNoZWNrbGlzdD8uc3RvcmVQcm9maWxlLHNlY3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS42NjkzIDEuNjY2NzVINS4wMDI2QzQuNTYwNTggMS42NjY3NSA0LjEzNjY1IDEuODQyMzQgMy44MjQwOSAyLjE1NDlDMy41MTE1MyAyLjQ2NzQ2IDMuMzM1OTQgMi44OTEzOSAzLjMzNTk0IDMuMzMzNDFWMTYuNjY2N0MzLjMzNTk0IDE3LjEwODggMy41MTE1MyAxNy41MzI3IDMuODI0MDkgMTcuODQ1M0M0LjEzNjY1IDE4LjE1NzggNC41NjA1OCAxOC4zMzM0IDUuMDAyNiAxOC4zMzM0SDE1LjAwMjZDMTUuNDQ0NiAxOC4zMzM0IDE1Ljg2ODYgMTguMTU3OCAxNi4xODExIDE3Ljg0NTNDMTYuNDkzNyAxNy41MzI3IDE2LjY2OTMgMTcuMTA4OCAxNi42NjkzIDE2LjY2NjdWNi42NjY3NU0xMS42NjkzIDEuNjY2NzVMMTYuNjY5MyA2LjY2Njc1TTExLjY2OTMgMS42NjY3NVY2LjY2Njc1SDE2LjY2OTNNMTAuMDAyNiAxNS4wMDAxVjEwLjAwMDFNNy41MDI2IDEyLjUwMDFIMTIuNTAyNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgZm9udC10YXNrXCI+Q3JlYXRlIFRhc2s8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLnRhc2smJnF1ZXN0aW9uLnRhc2tJZCAmJnRoaXMuZ2FsbGVyeUZvcm0udmFsdWUudHlwZSE9PSd0YXNrJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBib3JkZXItdmFsMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0YXNrcmVkaXJlY3QocXVlc3Rpb24sY2hlY2tsaXN0Py5zdG9yZVByb2ZpbGUsY2hlY2tsaXN0Py5jaGVja2xpc3RJbmZvKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtdGFza1wiPlZpZXcgVGFzazwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0xMCBteS01XCIgKm5nSWY9XCJpbWFnZUNoZWNrbGlzdC5pbmNsdWRlcyhzZWxlY3QpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCIgKm5nSWY9XCJjbGllbnREYXRhLmxvZ28mJmNsaWVudERhdGEubG9nbyE9PScnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJtdC01IG1iLTMgdGV4dC1jZW50ZXIgaWNvbnNpemVcIiBzcmM9XCJ7e2NsaWVudERhdGEubG9nb319XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2PiA8aDI+Q2hlY2tsaXN0IE5hbWUgOiB7e3RoaXMuY2hlY2tsaXN0TmFtZX19PC9oMj4gPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQgIT09ICdvdXRzaWRlYnVzaW5lc3Nob3Vyc3F1ZXVldHJhY2tpbmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgbXktMyBtdC01XCIgKm5nRm9yPVwibGV0IGl0ZW0gIG9mIG1vYmlsZXVzYWdlRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC0xMCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkNoZWNrbGlzdCBOYW1lPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IHt7dGhpcy5jaGVja2xpc3ROYW1lfX0gPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIj5TdG9yZSBOYW1lPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IHt7aXRlbS5zdG9yZU5hbWV9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIiAqbmdJZj1cIml0ZW0uZG93bl90aW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkF2ZXJhZ2UgRG93bnRpbWU8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiICpuZ0lmPVwiaXRlbS5kb3duX3RpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IHt7aXRlbS5kb3duX3RpbWV9fSBNaW5zPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJyb3cgdy0xMDAgcWEtYm9kcmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGkgY2xhc3M9XCJxYS1oZWFkaW5nXCI+IHt7aXRlbS5zdG9yZU5hbWV9fSA8L2xpPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbXktMlwiICpuZ0Zvcj1cImxldCBkZXRlY3Rpb24gb2YgaXRlbT8uaW1hZ2VVcmxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwidy0xMDAgaC01MDBweCByb3VuZGVkLXRvcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cInt7ZW52aXJvbm1lbnQuVHJheEFJaW1hZ2VjaGVja2xpc3RDRE59fXt7ZGV0ZWN0aW9ufX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgbXQtM1wiPiB7e3RoaXMuY2hlY2tsaXN0TmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbXktMlwiICpuZ0Zvcj1cImxldCBkZXRlY3Rpb24gb2YgaXRlbT8uaW1hZ2VzRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQ9PT0naW52ZW50b3J5Y291bnQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LmRhdGVfdGltZXN0YW1wXCI+RGV0ZWN0aW9uIFRpbWUgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2RldGVjdGlvbi5kYXRlX3RpbWVzdGFtcH19IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCB0ZXh0LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zXCIgKm5nSWY9XCJkZXRlY3Rpb24/LmNhcl9jb3VudFwiPk5vIG9mXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FycyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGV0ZWN0aW9uLmNhcl9jb3VudH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkPT09J251bWJlcnBsYXRlaW5mbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGVjdGlvbj8uY2FyX2xpY2Vuc2VfaWRcIj5OdW1iZXIgUGxhdGUgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2RldGVjdGlvbi5jYXJfbGljZW5zZV9pZH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IHRleHQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5kYXRlX3RpbWVzdGFtcFwiPkVudHJ5IFRpbWUgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2RldGVjdGlvbi5kYXRlX3RpbWVzdGFtcH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyeUZvcm0udmFsdWUuc291cmNlQ2hlY2tMaXN0X2lkPT09J2NhcnNhdHRlbmRlZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGVjdGlvbj8uaW50ZXJhY3RlZF9wZXJzb25fY291bnRcIj5OdW1iZXIgb2ZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZW9wbGUgSW50ZXJhY3RlZCA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGV0ZWN0aW9uLmludGVyYWN0ZWRfcGVyc29uX2NvdW50fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgdGV4dC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LmNhcl9yZWdfbnVtYmVyXCI+TnVtYmVyIFBsYXRlIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkZXRlY3Rpb24/LmNhcl9yZWdfbnVtYmVyfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5jYXJfcmVnX251bWJlclwiPkRldGVjdGlvbiBUaW1lIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkZXRlY3Rpb24/LmRhdGVfdGltZXN0YW1wfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgdGV4dC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LmludGVyYWN0ZWRfZHVyYXRpb25faW5fc2Vjc1wiPlRpbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVudCA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGV0ZWN0aW9uLmludGVyYWN0ZWRfZHVyYXRpb25faW5fc2Vjc319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pbnM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZD09PSd2ZWhpY2xlX2NoZWNrX2luJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5kYXRlX3RpbWVzdGFtcFwiPkRldGVjdGlvbiBUaW1lIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkZXRlY3Rpb24uZGF0ZV90aW1lc3RhbXB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCB0ZXh0LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGVjdGlvbj8uZGF0ZV90aW1lc3RhbXBcIj5TbG90IDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkZXRlY3Rpb24uc2xvdF9pZH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQ9PT0nb3V0c2lkZWJ1c2luZXNzaG91cnNxdWV1ZXRyYWNraW5nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbmFwY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHB4LTEwIG10LTUgbWFyZ2luLWxlZnQtc2lkZSBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwiZGV0ZWN0aW9uPy5zdG9yZU5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIj5TdG9yZSBOYW1lPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2RldGVjdGlvbi5zdG9yZU5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkRldGVjdGlvbiBTdGF0dXM8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGVjdGlvbj8uZGV0ZWN0aW9uU3RhdHVzOyBlbHNlIG5vRGV0ZWN0aW9uU3RhdHVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj4gOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1kYW5nZXJcIiAqbmdJZj1cImRldGVjdGlvbj8uRmxhZ1wiPkJyZWFjaGVkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTMgYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2Vzc1wiICpuZ0lmPVwiIWRldGVjdGlvbj8uRmxhZ1wiPk5vdCBCcmVhY2hlZDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1kYW5nZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LmRldGVjdGlvblN0YXR1cyA9PT0gJ0JyZWFjaGVkJ1wiPkJyZWFjaGVkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTMgYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2Vzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGVjdGlvbj8uZGV0ZWN0aW9uU3RhdHVzID09PSAnTm90IEJyZWFjaGVkJ1wiPk5vdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWNoZWQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1kYW5nZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LmRldGVjdGlvblN0YXR1cyA9PT0gJ09mZmxpbmUnXCI+T2ZmbGluZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9EZXRlY3Rpb25TdGF0dXM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+IDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1kYW5nZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5GbGFnXCI+QnJlYWNoZWQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTMgYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2Vzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhZGV0ZWN0aW9uPy5GbGFnXCI+Tm90XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWNoZWQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIj5EYXRlPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2RldGVjdGlvbi5EYXRlfGRhdGU6J2RkLU1NLXl5eXknXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSA8L3NwYW4+PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIiAqbmdJZj1cImRldGVjdGlvbj8uZGV0ZWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkRldGVjdGlvbiBDb3VudDwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+OiA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcy0zXCI+e3tkZXRlY3Rpb24uZGV0ZWN0aW9ucy5sZW5ndGh9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwiZGV0ZWN0aW9uPy5kZXRlY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+RGV0ZWN0aW9uIGF0PC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2RldGVjdGlvbi5zdG9yZU5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwiZGV0ZWN0aW9uPy5kb3dudGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkRvd250aW1lPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nSWY9XCJkZXRlY3Rpb24/LmRvd250aW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2RldGVjdGlvbi5kb3dudGltZX19IG1pbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIkRvd250aW1lIG1heSByZXN1bHQgaW4gaW5hY2N1cmF0ZSBkYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ0b3BcIiBjb250YWluZXI9XCJib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNVwiIGhlaWdodD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNSAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuNjY2NjcgNS4zMzIwM1Y3Ljk5ODdNNy42NjY2NyAxMC42NjU0SDcuNjczMzNNMTQuMzMzMyA3Ljk5ODdDMTQuMzMzMyAxMS42ODA2IDExLjM0ODYgMTQuNjY1NCA3LjY2NjY3IDE0LjY2NTRDMy45ODQ3NyAxNC42NjU0IDEgMTEuNjgwNiAxIDcuOTk4N0MxIDQuMzE2OCAzLjk4NDc3IDEuMzMyMDMgNy42NjY2NyAxLjMzMjAzQzExLjM0ODYgMS4zMzIwMyAxNC4zMzMzIDQuMzE2OCAxNC4zMzMzIDcuOTk4N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24ucGF0aCAmJiBkZXRlY3Rpb24ucGF0aCAhPT0gbnVsbCAmJiBkZXRlY3Rpb24ucGF0aCAhPT0gdW5kZWZpbmVkICYmIGRldGVjdGlvbi5wYXRoICE9PSAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJ3LTEwMCBoLTUwMHB4IHJvdW5kZWQtdG9wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwie3tlbnZpcm9ubWVudC5UcmF4QUljaGVja2xpc3RDRE59fXt7ZGV0ZWN0aW9uLnBhdGh9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtdC0zXCI+IHt7dGhpcy5jaGVja2xpc3ROYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnYWxsZXJ5Rm9ybS52YWx1ZS5zb3VyY2VDaGVja0xpc3RfaWQgPT09ICdvdXRzaWRlYnVzaW5lc3Nob3Vyc3F1ZXVldHJhY2tpbmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgbXktMyBtdC01XCIgKm5nRm9yPVwibGV0IGl0ZW0gIG9mIG1vYmlsZXVzYWdlRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC0xMCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkNoZWNrbGlzdCBOYW1lPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IHt7dGhpcy5jaGVja2xpc3ROYW1lfX0gPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG15LTJcIiAqbmdGb3I9XCJsZXQgZGV0ZWN0aW9uIG9mIGl0ZW0/LmltYWdlc0RhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdhbGxlcnlGb3JtLnZhbHVlLnNvdXJjZUNoZWNrTGlzdF9pZD09PSdvdXRzaWRlYnVzaW5lc3Nob3Vyc3F1ZXVldHJhY2tpbmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic25hcGNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHB4LTEwIG10LTUgbWFyZ2luLWxlZnQtc2lkZSBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nSWY9XCJkZXRlY3Rpb24/LnN0b3JlTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+U3RvcmUgTmFtZTwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+OiA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2RldGVjdGlvbi5zdG9yZU5hbWV9fTwvc3Bhbj48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkRldGVjdGlvbiBTdGF0dXM8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInVuaS1zdWJ0aXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LmRldGVjdGlvblN0YXR1c1wiPiA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zIGJhZGdlIGJhZGdlLWxpZ2h0LWRhbmdlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5kZXRlY3Rpb25TdGF0dXMgPT09ICdEZXRlY3RlZCdcIj5EZXRlY3RlZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTMgYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2Vzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5kZXRlY3Rpb25TdGF0dXMgPT09ICdOb3QgRGV0ZWN0ZWQnXCI+Tm90XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERldGVjdGVkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1kYW5nZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGVjdGlvbj8uZGV0ZWN0aW9uU3RhdHVzID09PSAnT2ZmbGluZSdcIj5PZmZsaW5lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGUgdGV4dC1lbmRcIj5EYXRlPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXMtM1wiPnt7ZGV0ZWN0aW9uLkRhdGV9fSA8L3NwYW4+PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nSWY9XCJkZXRlY3Rpb24/LmRldGVjdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkRldGVjdGlvbiBDb3VudDwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+OiA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2RldGVjdGlvbi5kZXRlY3Rpb25zLmxlbmd0aH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nSWY9XCJkZXRlY3Rpb24/LmRldGVjdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkRldGVjdGlvbiBhdDwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkZXRlY3Rpb25BdCAgb2YgZGV0ZWN0aW9uLmRldGVjdGlvbnM7IGxldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWNrZ3JvdW5kR3JheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImkgPCA1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2RldGVjdGlvbkF0fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRldGVjdGlvbi5kZXRlY3Rpb25zLmxlbmd0aCA+IDVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTMgYmFkZ2UgYmFja2dyb3VuZEdyYXlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3t7IGRldGVjdGlvbi5kZXRlY3Rpb25zLmxlbmd0aCAtIDUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIiAqbmdJZj1cImRldGVjdGlvbj8uZG93bnRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkRvd250aW1lPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwiZGV0ZWN0aW9uPy5kb3dudGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXMtM1wiPnt7ZGV0ZWN0aW9uLmRvd250aW1lfX0gbWluc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cIkRvd250aW1lIG1heSByZXN1bHQgaW4gaW5hY2N1cmF0ZSBkYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInRvcFwiIGNvbnRhaW5lcj1cImJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNVwiIGhlaWdodD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE1IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuNjY2NjcgNS4zMzIwM1Y3Ljk5ODdNNy42NjY2NyAxMC42NjU0SDcuNjczMzNNMTQuMzMzMyA3Ljk5ODdDMTQuMzMzMyAxMS42ODA2IDExLjM0ODYgMTQuNjY1NCA3LjY2NjY3IDE0LjY2NTRDMy45ODQ3NyAxNC42NjU0IDEgMTEuNjgwNiAxIDcuOTk4N0MxIDQuMzE2OCAzLjk4NDc3IDEuMzMyMDMgNy42NjY2NyAxLjMzMjAzQzExLjM0ODYgMS4zMzIwMyAxNC4zMzMzIDQuMzE2OCAxNC4zMzMzIDcuOTk4N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTEwIG15LTVcIiAqbmdJZj1cInZpZGVvQ2hlY2tsaXN0LmluY2x1ZGVzKHNlbGVjdClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIiAqbmdJZj1cImNsaWVudERhdGEubG9nbyYmY2xpZW50RGF0YS5sb2dvIT09JydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIm10LTUgbWItMyB0ZXh0LWNlbnRlciBpY29uc2l6ZVwiIHNyYz1cInt7Y2xpZW50RGF0YS5sb2dvfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTMgbXQtNVwiICpuZ0Zvcj1cImxldCBpdGVtICBvZiBjdXN0b21lcnVuYXR0ZW5kZWREYXRhXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtMTAgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+Q2hlY2tsaXN0IE5hbWU8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInVuaS1zdWJ0aXRsZVwiPjogPHNwYW4gY2xhc3M9XCJtcy0zXCI+e3t0aGlzLmNoZWNrbGlzdE5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPlN0b3JlIE5hbWU8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInVuaS1zdWJ0aXRsZVwiPjogPHNwYW4gY2xhc3M9XCJtcy0zXCI+e3tpdGVtLnN0b3JlTmFtZX19PC9zcGFuPjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwicm93IHctMTAwIG1hcmdpbi10b3Atc2lkZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwicWEtaGVhZGluZ1wiPiA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIiAqbmdGb3I9XCJsZXQgZGV0ZWN0aW9uIG9mIGl0ZW0uaW1hZ2VzRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHB4LTEwIG10LTUgbWFyZ2luLWxlZnQtc2lkZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdCE9PSdzdXNwaWNpb3VzYWN0aXZpdHknXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5kZXRlY3Rpb25TdGF0dXM7IGVsc2Ugbm9EZXRlY3Rpb25TdGF0dXNDYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+RGV0ZWN0aW9uIFN0YXR1czwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9EZXRlY3Rpb25TdGF0dXNDYXJkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwiZGV0ZWN0aW9uPy5BbnN3ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+RGV0ZWN0aW9uIFN0YXR1czwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGVjdGlvbj8uZGV0ZWN0aW9uU3RhdHVzOyBlbHNlIG5vRGV0ZWN0aW9uU3RhdHVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJtcy0zIGJhZGdlIGJhZGdlLWxpZ2h0LWRhbmdlclwiICpuZ0lmPVwiZGV0ZWN0aW9uPy5BbnN3ZXI9PT0ncmVqZWN0ZWQnXCI+QnJlYWNoZWQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1zdWNjZXNzXCIgKm5nSWY9XCJkZXRlY3Rpb24/LkFuc3dlcj09PSdhcHByb3ZlZCdcIj5Ob3QgQnJlYWNoZWQ8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTMgYmFkZ2UgYmFkZ2UtbGlnaHQtZGFuZ2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5kZXRlY3Rpb25TdGF0dXMgPT09ICdCcmVhY2hlZCdcIj5CcmVhY2hlZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zIGJhZGdlIGJhZGdlLWxpZ2h0LXN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LmRldGVjdGlvblN0YXR1cyA9PT0gJ05vdCBCcmVhY2hlZCdcIj5Ob3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFjaGVkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTMgYmFkZ2UgYmFkZ2UtbGlnaHQtZGFuZ2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5kZXRlY3Rpb25TdGF0dXMgPT09ICdPZmZsaW5lJ1wiPk9mZmxpbmU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vRGV0ZWN0aW9uU3RhdHVzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwiZGV0ZWN0aW9uPy5BbnN3ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTMgYmFkZ2UgYmFkZ2UtbGlnaHQtZGFuZ2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGVjdGlvbj8uQW5zd2VyPT09J3JlamVjdGVkJ1wiPkJyZWFjaGVkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zIGJhZGdlIGJhZGdlLWxpZ2h0LXN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5BbnN3ZXI9PT0nYXBwcm92ZWQnXCI+Tm90XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWNoZWQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIj5EYXRlPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2RldGVjdGlvbi5kYXRlfGRhdGU6J2RkLU1NLXl5eXknIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwiZGV0ZWN0aW9uPy5jb25maWdUaW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+Q29uZmlndXJlZCBUaW1lPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nSWY9XCJkZXRlY3Rpb24/LmNvbmZpZ1RpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInVuaS1zdWJ0aXRsZSBcIj46IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2RldGVjdGlvbi5jb25maWdUaW1lIH19PC9zcGFuPjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nSWY9XCJkZXRlY3Rpb24/LmR1cmF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+RHVyYXRpb248L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIiAqbmdJZj1cImRldGVjdGlvbj8uZHVyYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInVuaS1zdWJ0aXRsZVwiPjogPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXMtM1wiPnt7ZGV0ZWN0aW9uLmR1cmF0aW9uIH19IE1pbnMgPC9zcGFuPjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nSWY9XCJkZXRlY3Rpb24/LmRvd25UaW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+RG93bnRpbWU8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIiAqbmdJZj1cImRldGVjdGlvbj8uZG93blRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInVuaS1zdWJ0aXRsZVwiPjogPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXMtM1wiPnt7ZGV0ZWN0aW9uLmRvd25UaW1lIH19IE1pbnMgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBuZ2JUb29sdGlwPVwiRG93bnRpbWUgbWF5IHJlc3VsdCBpbiBpbmFjY3VyYXRlIGRhdGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwidG9wXCIgY29udGFpbmVyPVwiYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE1IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuNjY2NjcgNS4zMzIwM1Y3Ljk5ODdNNy42NjY2NyAxMC42NjU0SDcuNjczMzNNMTQuMzMzMyA3Ljk5ODdDMTQuMzMzMyAxMS42ODA2IDExLjM0ODYgMTQuNjY1NCA3LjY2NjY3IDE0LjY2NTRDMy45ODQ3NyAxNC42NjU0IDEgMTEuNjgwNiAxIDcuOTk4N0MxIDQuMzE2OCAzLjk4NDc3IDEuMzMyMDMgNy42NjY2NyAxLjMzMjAzQzExLjM0ODYgMS4zMzIwMyAxNC4zMzMzIDQuMzE2OCAxNC4zMzMzIDcuOTk4N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIG1pbi1oLTQ1cHggcHgtMCBteS0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cIm1lLTMgc3RvcmUtdGl0bGVcIj57e2l0ZW0uc3RvcmVOYW1lfX08L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LmN1c3RvbWVyX2lkXCI+Q3VzdCBJRCA6IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2RldGVjdGlvbi5jdXN0b21lcl9pZH19PC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5xdWV1ZV9pZFwiPlF1ZXVlIElEIDogPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXMtM1wiPnt7ZGV0ZWN0aW9uLnF1ZXVlX2lkfX08L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/Lm9wdHVtX2lkXCI+T3B0b20gSUQgOiA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcy0zXCI+e3tkZXRlY3Rpb24ub3B0dW1faWR9fTwvc3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cIm1zLTIgYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdFwiICpuZ0lmPVwiZGV0ZWN0aW9uPy5kYXRlXCI+RGF0ZSA6IHt7ZGV0ZWN0aW9uLmRhdGV8ZGF0ZTonZGQtTU0teXl5eScgfX08L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJtcy0zIGJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHRcIiAqbmdJZj1cImRldGVjdGlvbj8uY29uZmlnVGltZVwiPkluc3BlY3Rpb24gdGltZSA6IHt7ZGV0ZWN0aW9uLmNvbmZpZ1RpbWV9fTwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zIGJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGVjdGlvbj8udGVtcF9pZFwiPlRlbXBJZCA6IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2RldGVjdGlvbi50ZW1wX2lkfX08L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LnRpbWVfc3BlbmRcIj5UaW1lc3BlbmQgOiA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcy0zXCI+e3tkZXRlY3Rpb24udGltZV9zcGVuZH19TWluczwvc3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gzPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU3dpdGNoIHRvZ2dsZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIHRleHQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0ZWN0aW9uPy5lbnRyeV90aW1lXCI+RW50cnkgdGltZSA6IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcy0zXCI+e3tkZXRlY3Rpb24uZW50cnlfdGltZX19PC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zIGJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LmV4aXRfdGltZVwiPkV4aXQgdGltZSA6IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcy0zXCI+e3tkZXRlY3Rpb24uZXhpdF90aW1lfX08L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTMgYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2Vzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGVjdGlvbj8uYWRoZXJlbmNlX3JhdGVcIj5BZGhlcmVuY2UgUmF0ZSA6IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcy0zXCI+e3tkZXRlY3Rpb24uYWRoZXJlbmNlX3JhdGV9fTwvc3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IHRleHQtY2FwaXRhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGVjdGlvbj8uY2F0ZWdvcnlcIj4gPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2RldGVjdGlvbi5jYXRlZ29yeX19PC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zIGJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LmN1c3RvbWVyX2VudHJ5X3RpbWVcIj5FbnRyeSB0aW1lIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcy0zXCI+e3tkZXRlY3Rpb24uY3VzdG9tZXJfZW50cnlfdGltZX19PC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zIGJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRlY3Rpb24/LmN1c3RvbWVyX2V4aXRfdGltZVwiPkV4aXQgdGltZSA6IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcy0zXCI+e3tkZXRlY3Rpb24uY3VzdG9tZXJfZXhpdF90aW1lfX08L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0wXCIgKm5nSWY9XCJzZWxlY3QgIT09J2V5ZXRlc3QnJiZzZWxlY3QgIT0nZmFjdG9yeSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2aWRlbyBjb250cm9scyBjbGFzcz1cInctMTAwIGgtNDUwcHggcm91bmRlZC10b3BcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cInt7ZW52aXJvbm1lbnQuVHJheEFJY2hlY2tsaXN0Q0ROfX17e2RldGVjdGlvbi52aWRlb19wYXRofX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92aWRlbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0wXCIgKm5nSWY9XCJzZWxlY3QgPT09J2V5ZXRlc3QnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlkZW8gY29udHJvbHMgY2xhc3M9XCJ3LTEwMCBoLTQ1MHB4IHJvdW5kZWQtdG9wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJ7e2Vudmlyb25tZW50LkV5ZVRlc3RDRE59fXt7ZGV0ZWN0aW9uLnZpZGVvX3BhdGh9fVwiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92aWRlbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0wXCIgKm5nSWY9XCJzZWxlY3QgPT09J2ZhY3RvcnknXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlkZW8gY29udHJvbHMgY2xhc3M9XCJ3LTEwMCBoLTQ1MHB4IHJvdW5kZWQtdG9wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJ7e2Vudmlyb25tZW50LmZhY3RvcnlDRE59fXt7ZGV0ZWN0aW9uLnZpZGVvX3BhdGh9fVwiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92aWRlbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3QgPT09J3N0b3Jlb3BlbmFuZGNsb3NlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiICpuZ0lmPVwiY2xpZW50RGF0YS5sb2dvJiZjbGllbnREYXRhLmxvZ28hPT0nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibXQtNSBtYi0zIHRleHQtY2VudGVyIGljb25zaXplXCIgc3JjPVwie3tjbGllbnREYXRhLmxvZ299fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtMTAgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkNoZWNrbGlzdCBOYW1lIDogPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj4ge3t0aGlzLmNoZWNrbGlzdE5hbWV9fSA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbWFyZ2luLXRvcC1zaWRlXCIgKm5nRm9yPVwibGV0IHN0b3JlIG9mIHN0b3JlT3BlbmNsb3NlVmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIG14LTggbXktOFwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHN0b3JlLmltYWdlc0RhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbmFwY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtMTAgbXQtNSBtYXJnaW4tbGVmdC1zaWRlIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIiAqbmdJZj1cIml0ZW0/LnN0b3JlTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+U3RvcmUgTmFtZTwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIiAqbmdJZj1cIml0ZW0/LnN0b3JlTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXMtM1wiPnt7aXRlbS5zdG9yZU5hbWV9fTwvc3Bhbj48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIiAqbmdJZj1cIml0ZW0/LmJ1ZmZlcl9vcGVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIj5CdWZmZXIgZm9yIE9wZW4gVGltZSA8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nSWY9XCJpdGVtPy5idWZmZXJfb3BlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IDxzcGFuIGNsYXNzPVwibXMtM1wiPnt7aXRlbS5idWZmZXJfb3BlbiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5zPC9zcGFuPjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwiaXRlbT8uYnVmZmVyX2Nsb3NlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIj5CdWZmZXIgZm9yIENsb3NlIFRpbWUgPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwiaXRlbT8uYnVmZmVyX2Nsb3NlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInVuaS1zdWJ0aXRsZVwiPjogPHNwYW4gY2xhc3M9XCJtcy0zXCI+e3tpdGVtLmJ1ZmZlcl9jbG9zZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5zPC9zcGFuPjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+RGV0ZWN0aW9uIFN0YXR1czwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+IDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1kYW5nZXJcIiAqbmdJZj1cIml0ZW0/LkZsYWdcIj5CcmVhY2hlZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTMgYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2Vzc1wiICpuZ0lmPVwiIWl0ZW0/LkZsYWdcIj5Ob3QgQnJlYWNoZWQ8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1kYW5nZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0/LmRldGVjdGlvblN0YXR1cyA9PT0gJ0JyZWFjaGVkJ1wiPkJyZWFjaGVkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1zdWNjZXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtPy5kZXRlY3Rpb25TdGF0dXMgPT09ICdOb3QgQnJlYWNoZWQnXCI+Tm90XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFjaGVkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBiYWRnZSBiYWRnZS1saWdodC1kYW5nZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0/LmRldGVjdGlvblN0YXR1cyA9PT0gJ09mZmxpbmUnXCI+T2ZmbGluZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+RGF0ZTwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+OiA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj57e2l0ZW0uZGF0ZXxkYXRlOidkZC1NTS15eXl5JyB9fSA8L3NwYW4+PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nSWY9XCJpdGVtPy5kb3dudGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+RG93bnRpbWU8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nSWY9XCJpdGVtPy5kb3dudGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj46IDxzcGFuIGNsYXNzPVwibXMtM1wiPnt7aXRlbS5kb3dudGltZX19IG1pbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gbmdiVG9vbHRpcD1cIkRvd250aW1lIG1heSByZXN1bHQgaW4gaW5hY2N1cmF0ZSBkYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInRvcFwiIGNvbnRhaW5lcj1cImJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNSAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk03LjY2NjY3IDUuMzMyMDNWNy45OTg3TTcuNjY2NjcgMTAuNjY1NEg3LjY3MzMzTTE0LjMzMzMgNy45OTg3QzE0LjMzMzMgMTEuNjgwNiAxMS4zNDg2IDE0LjY2NTQgNy42NjY2NyAxNC42NjU0QzMuOTg0NzcgMTQuNjY1NCAxIDExLjY4MDYgMSA3Ljk5ODdDMSA0LjMxNjggMy45ODQ3NyAxLjMzMjAzIDcuNjY2NjcgMS4zMzIwM0MxMS4zNDg2IDEuMzMyMDMgMTQuMzMzMyA0LjMxNjggMTQuMzMzMyA3Ljk5ODdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtLTAgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1nIG10LTQgcHgtMyBwb3NpdGlvbi1yZWxhdGl2ZVwiICpuZ0lmPVwiIWl0ZW0ub3BlblRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJldmlldyBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjNcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjMgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPVwiR3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjUgNi4zMjIyN0g2LjUxTTE2LjI1IDkuMzIyMjdIMjEuNUwxOCAxNi4zMjIzTDE0LjkxIDEyLjAwMjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+IFxcXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xLjUgMTYuMzIyOUg1LjI2QzUuNjMyNzMgMTYuMzI1NSA1Ljk5ODc3IDE2LjIyMzkgNi4zMTY4MiAxNi4wMjk1QzYuNjM0ODcgMTUuODM1MiA2Ljg5MjI4IDE1LjU1NTggNy4wNiAxNS4yMjI5TDguNSAxMi4zMjI5TTEuNSAxOC4zMjI5VjE0LjMyMjlNMTcuNSA2LjgyMjkxTDEzLjUgMTQuODIyOUwzLjExIDkuNjIyOTFDMi40MjAzMyA5LjI3NTUzIDEuODk2MzUgOC42NjkxIDEuNjUyNzIgNy45MzYzMkMxLjQwOTA5IDcuMjAzNTQgMS40NjU2NCA2LjQwNDEgMS44MSA1LjcxMjkxTDMuMTkgMi45MjI5MUMzLjM2MiAyLjU4MDE0IDMuNTk5ODQgMi4yNzQ2IDMuODg5OTQgMi4wMjM3NUM0LjE4MDAzIDEuNzcyOSA0LjUxNjcgMS41ODE2NSA0Ljg4MDcyIDEuNDYwOTNDNS4yNDQ3NCAxLjM0MDIxIDUuNjI4OTcgMS4yOTIzOSA2LjAxMTQ3IDEuMzIwMThDNi4zOTM5OCAxLjM0Nzk3IDYuNzY3MjYgMS40NTA4NCA3LjExIDEuNjIyOTFMMTcuNSA2LjgyMjkxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBydnR4dCBtdC01IHRleHRjbHJcIj5QcmV2aWV3IG5vdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlZnJlc2h0eHQgbXQtMiB0ZXh0Y2xyXCI+VGhlIHNlbGVjdGVkIGNhbWVyYSBpc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90IGF2YWlsYWJsZSBhdCB0aGUgbW9tZW50Ljwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiaXRlbS5vcGVuVGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJteC0xIG9wZW5jbG9zZXNuYXBJTUdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJ7e2Vudmlyb25tZW50LlRyYXhPcGVuY2xvc2VjaGVja2xpc3RDRE59fXt7aXRlbS5zdG9yZUlkfX0ve3tpdGVtLmRhdGVTdHJpbmd8ZGF0ZTonZGQtTU0teXl5eSd9fS9vcGVyYXRpb25fc25hcHMvb3Blbi5qcGVnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwib3BlbiBjbG9zZSBzbmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtc3RhY2sgbXgtMSBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbmFwdGV4dFwiPk9wZW5pbmcgU25hcDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbmFwdGltZVwiPnt7aXRlbS5vcGVuVGltZX19IC1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLmRhdGV9fSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IHNuYXBiYWRnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtPy5vbm9wZW5UaW1lRmxhZ1wiPk9uIFRpbWU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWRhbmdlciBzbmFwYmFkZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbT8ubGF0ZW9wZW5UaW1lRmxhZ1wiPkxhdGUgT3Blbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtd2FybmluZyBzbmFwYmFkZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbT8uZWFybHlvcGVuVGltZUZsYWdcIj5FYXJseSBPcGVuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1nIG10LTQgcHgtMyBwb3NpdGlvbi1yZWxhdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhaXRlbS5jbG9zZVRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJldmlldyBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjNcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjMgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPVwiR3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjUgNi4zMjIyN0g2LjUxTTE2LjI1IDkuMzIyMjdIMjEuNUwxOCAxNi4zMjIzTDE0LjkxIDEyLjAwMjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+IFxcXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xLjUgMTYuMzIyOUg1LjI2QzUuNjMyNzMgMTYuMzI1NSA1Ljk5ODc3IDE2LjIyMzkgNi4zMTY4MiAxNi4wMjk1QzYuNjM0ODcgMTUuODM1MiA2Ljg5MjI4IDE1LjU1NTggNy4wNiAxNS4yMjI5TDguNSAxMi4zMjI5TTEuNSAxOC4zMjI5VjE0LjMyMjlNMTcuNSA2LjgyMjkxTDEzLjUgMTQuODIyOUwzLjExIDkuNjIyOTFDMi40MjAzMyA5LjI3NTUzIDEuODk2MzUgOC42NjkxIDEuNjUyNzIgNy45MzYzMkMxLjQwOTA5IDcuMjAzNTQgMS40NjU2NCA2LjQwNDEgMS44MSA1LjcxMjkxTDMuMTkgMi45MjI5MUMzLjM2MiAyLjU4MDE0IDMuNTk5ODQgMi4yNzQ2IDMuODg5OTQgMi4wMjM3NUM0LjE4MDAzIDEuNzcyOSA0LjUxNjcgMS41ODE2NSA0Ljg4MDcyIDEuNDYwOTNDNS4yNDQ3NCAxLjM0MDIxIDUuNjI4OTcgMS4yOTIzOSA2LjAxMTQ3IDEuMzIwMThDNi4zOTM5OCAxLjM0Nzk3IDYuNzY3MjYgMS40NTA4NCA3LjExIDEuNjIyOTFMMTcuNSA2LjgyMjkxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBydnR4dCBtdC01IHRleHRjbHJcIj5QcmV2aWV3IG5vdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlZnJlc2h0eHQgbXQtMiB0ZXh0Y2xyXCI+VGhlIHNlbGVjdGVkIGNhbWVyYSBpc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90IGF2YWlsYWJsZSBhdCB0aGUgbW9tZW50Ljwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiaXRlbS5jbG9zZVRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibXgtMSBvcGVuY2xvc2VzbmFwSU1HXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwie3tlbnZpcm9ubWVudC5UcmF4T3BlbmNsb3NlY2hlY2tsaXN0Q0ROfX17e2l0ZW0uc3RvcmVJZH19L3t7aXRlbS5kYXRlU3RyaW5nfGRhdGU6J2RkLU1NLXl5eXknfX0vb3BlcmF0aW9uX3NuYXBzL2Nsb3NlLmpwZWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJDaGVja2xpc3QgVmlkZW8gUGxheWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtc3RhY2sgbXgtMSBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbmFwdGV4dFwiPkNsb3NpbmcgU25hcDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbmFwdGltZVwiPnt7aXRlbS5jbG9zZVRpbWV9fSAtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5kYXRlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IHNuYXBiYWRnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtPy5vbmNsb3NlVGltZUZsYWdcIj5PbiBUaW1lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1kYW5nZXIgc25hcGJhZGdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0/LmVhcmx5Y2xvc2VUaW1lRmxhZ1wiPkVhcmx5IENsb3NlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC13YXJuaW5nIHNuYXBiYWRnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtPy5sYXRlY2xvc2VUaW1lRmxhZ1wiPkxhdGUgQ2xvc2U8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImJveGltYWdlQ2hlY2tsaXN0LmluY2x1ZGVzKHNlbGVjdClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIiAqbmdJZj1cImNsaWVudERhdGEubG9nbyYmY2xpZW50RGF0YS5sb2dvIT09JydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIm10LTUgbWItMyB0ZXh0LWNlbnRlciBpY29uc2l6ZVwiIHNyYz1cInt7Y2xpZW50RGF0YS5sb2dvfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCIgKm5nRm9yPVwibGV0IHN0b3JlIG9mIHF1ZXVlQWxlcnRWaWV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtMTAgbXQtNVwiICpuZ0lmPVwic2hvd211bHRpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIj5TdG9yZSBOYW1lOjwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+e3tzdG9yZT8uc3RvcmVOYW1lfX0gfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3N0b3JlPy5jaXR5fX0se3tzdG9yZT8uc3RhdGV9fSx7e3N0b3JlPy5jb3VudHJ5fX0gPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIj5DaGVja2xpc3QgTmFtZTo8L2gzPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj57e2NoZWNrbGlzdE5hbWV9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdD09PSdib3hhbGVydCd8fHNlbGVjdD09PSdzdXNwaWNpb3VzZm9vdGZhbGwnfHxzZWxlY3Q9PT0nZHJpbmtpbmcnfHxzZWxlY3Q9PT0nYmFnZGV0ZWN0aW9uJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkRlc2NyaXB0aW9uOjwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3Q9PT0nYm94YWxlcnQnfHxzZWxlY3Q9PT0nc3VzcGljaW91c2Zvb3RmYWxsJ3x8c2VsZWN0PT09J2RyaW5raW5nJ3x8c2VsZWN0PT09J2JhZ2RldGVjdGlvbidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInVuaS1zdWJ0aXRsZVwiPnt7Y2hlY2tMaXN0RGVzY3JpcHRpb259fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbS0wIHctMTAwIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00IG10LTJcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzdG9yZS5pbWFnZXNEYXRhXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgYm9yZGVyY29sb3IgYmctc2Vjb25kYXJ5IG10LThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3RhcnQgbXMtNSBtdC0yIG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnpvbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IHJvdW5kZWQtbGcgcC0yXCI+e3tpdGVtLnpvbmV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zIGZ3LXNlbWlib2xkXCI+e3sgaXRlbS5kYXRlX3RpbWVzdGFtcCB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInctMTAwIGgtMjUwcHggcm91bmRlZC1ib3R0b21cIiAoY2xpY2spPVwib3Blbk1vZGVsKGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cInt7ZW52aXJvbm1lbnQuVHJheEFJY2hlY2tsaXN0Q0ROfX17e2l0ZW0ucGF0aH19XCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLXBhZ2luYXRpb24gKm5nSWY9XCIhdmlld2xvYWRpbmcgJiYgIXZpZXdub0RhdGFcIiBbaXRlbXNQZXJQYWdlXT1cImxpbWl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY3VycmVudFBhZ2VdPVwib2Zmc2V0XCIgW3RvdGFsSXRlbXNdPVwidG90YWxDb3VudFwiIFtwYWdpbmF0aW9uU2l6ZXNdPSdwYWdpbmF0aW9uU2l6ZXMnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhZ2VTaXplXT1cImxpbWl0XCIgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdldmlldygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFnZVNpemVDaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCI+PC9saWItcGFnaW5hdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXNob3dzaWRlbmF2XCIgKGNsaWNrKT1cInNpZGVuYXYoKVwiIGNsYXNzPVwiYmFja0J1dHRvbmxlZnQgdGV4dC1jZW50ZXIgcHQtMSBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJtdC0yIG1zLTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkuNzI3MTQgMTIuNjM2NUwxMy4zNjM1IDkuMDAwMTNMOS43MjcxNCA1LjM2Mzc3TTQuNjM2MjMgMTIuNjM2NUw4LjI3MjU5IDkuMDAwMTNMNC42MzYyMyA1LjM2Mzc3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMxMDE4MjhcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJyb3cgY2FyZCBteC0wIHAtMyBcIiAqbmdJZj1cImNoZWNrQUljaGVja2xpc3QoKSYmIXZpZXdub0RhdGEmJnVzZXJEZXRhaWxzPy5yb2xlIT09J3VzZXInXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyICB0ZXh0LWVuZFwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIGJvcmRlci1wcmltYXJ5MVwiIFtkaXNhYmxlZF09XCIhYXBwcm92YWxTdGF0dXNcIiAoY2xpY2spPVwiYXBwb3ZlQ2hlY2tsaXN0KClcIj5BcHByb3ZlXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxuZy10ZW1wbGF0ZSAjem9vbVBvcHVwIGxldC1tb2RlbD5cclxuICAgIDxkaXYgY2xhc3M9XCJwLThcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIHB0LTAgcHMtMSBwZS0wXCI+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdGFydCBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInZpZXdJbWFnZS56b25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgcm91bmRlZC1sZyBwLTJcIj57e3ZpZXdJbWFnZS56b25lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInZpZXdJbWFnZS5lbXB0eUJveENvdW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkVtcHR5IHNoZWx2ZXMgOiB7e3ZpZXdJbWFnZS5lbXB0eUJveENvdW50fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ2aWV3SW1hZ2UuZW50cnlfdGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5FbnRyeSBUaW1lIDoge3t2aWV3SW1hZ2UuZW50cnlfdGltZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ2aWV3SW1hZ2UuZXhpdF90aW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkV4aXQgVGltZSA6IHt7dmlld0ltYWdlLmV4aXRfdGltZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ2aWV3SW1hZ2UudGVtcF9pZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5UZW1wIElkIDoge3t2aWV3SW1hZ2UudGVtcF9pZH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ2aWV3SW1hZ2UudGltZV9zcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5UaW1lIFNwZW5kIDoge3t2aWV3SW1hZ2UudGltZV9zcGVuZH19IE1pbnM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yXCIgKm5nSWY9XCJ2aWV3SW1hZ2UudGhyZXNob2xkJiZ2aWV3SW1hZ2UuRHdlbGx0aW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPklmIHRoZSBxdWV1ZSBleGNlZWRzIHt7dmlld0ltYWdlLnRocmVzaG9sZH19IHBlb3BsZSBhbmQgd2FpdCB0aW1lIHN1cnBhc3Nlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3t2aWV3SW1hZ2UuRHdlbGx0aW1lfX0gbWludXRlcywgYW4gYWxlcnQgd2lsbCBiZSB0cmlnZ2VyZWQ8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTMgZnctc2VtaWJvbGRcIj57eyB2aWV3SW1hZ2UuZGF0ZV90aW1lc3RhbXAgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgZGF0YS1icy1kaXNtaXNzPVwibW9kYWxcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJzdHJlYW0gZnctc2VtaWJvbGQgdGV4dC1ub3dyYXAgbWUtNVwiICpuZ0lmPVwiY2FtZXJhLmhlaWdodCAmJiBjYW1lcmEud2lkdGhcIj4gUmVzb2x1dGlvbjoge3tjYW1lcmEuaGVpZ2h0fX0gWCAge3tjYW1lcmEud2lkdGh9fTwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5IG1lLTBcIiAoY2xpY2spPVwibW9kZWwuZGlzbWlzcygpXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUgNUw1IDE1TTUgNUwxNSAxNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ2aWV3SW1hZ2UucGF0aFwiIGNsYXNzPVwibXQtMiBvdmVyZmxvdy1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJyb3VuZGVkLTQgbXQtNSBpbWctcG9wdXAtc3JjIHctMTAwXCIgc3JjPVwie3tlbnZpcm9ubWVudC5UcmF4QUljaGVja2xpc3RDRE59fXt7dmlld0ltYWdlLnBhdGh9fVwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+Il19
|